找回密码
 立即注册
查看: 56|回复: 4

求助, 8G1K08A-8PIN无法识别到串口(COM) | 明白了

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-19 20:08:52
已绑定手机

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 5 天前 | 显示全部楼层 |阅读模式

芯片型号是8G1K08A-8PIN,

原理图
image.png
**

在按住按钮(kb1 button)的情况下, 使用STC-ISP(v6.95U), 可以正常识别到(USB1-Writer), 点击检测选项也会正常返回信息, 但在设备管理器中, 无法找到任何的串口(COM), 导致使用串口助手的时候无法获取到我代码中想Print的Str
image.png

#include "reg51.h"
#include "intrins.h"
#define FOSC 11059200UL
#define BRT (65536 - FOSC / 115200 / 4)
sfr AUXR = 0x8e;
sfr T2H = 0xd6;
sfr T2L = 0xd7;
sfr S2CON = 0x9a;
sfr S2BUF = 0x9b;
sfr IE2 = 0xaf;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
bit busy;
char wptr;
char rptr;
char buffer[16];
void Uart2Isr() interrupt 8
{
    if (S2CON & 0x02)
    {
        S2CON &= ~0x02;
        busy = 0;
    }
    if (S2CON & 0x01)
    {
        S2CON &= ~0x01;
        buffer[wptr++] = S2BUF;
        wptr &= 0x0f;
    }
}
void Uart2Init()
{
    S2CON = 0x10;
    T2L = BRT;
    T2H = BRT >> 8;
    AUXR = 0x14;
    wptr = 0x00;
    rptr = 0x00;
    busy = 0;
}
void Uart2Send(char dat)
{
    while (busy);
    busy = 1;
    S2BUF = dat;
}
void Uart2SendStr(char *p)
{
    while (*p)
    {
        Uart2Send(*p++);
    }
}
void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    Uart2Init();
    IE2 = 0x01;
    EA = 1;
    Uart2SendStr("Uart Test !\r\n");
    while (1)
    {
        if (rptr != wptr)
        {
            Uart2Send(buffer[rptr++]);
            rptr &= 0x0f;
        }
    }
}

image.png

这里的驱动也安装了.
想问一下, 是因为STC8G1K08A-8PIN这款芯片本来就没有COM通讯, 还是我的操作有问题?

回复

使用道具 举报 送花

3

主题

2031

回帖

910

积分

等待验证会员

积分
910
发表于 5 天前 | 显示全部楼层
尊敬的用户,您好:

感谢您对我们产品的关注与支持。关于您提到的STC8G1K08A-8PIN芯片在使用过程中无法识别到串口(COM)的问题,我们已收到相关反馈,并将从硬件设计、固件配置及调试方法等方面为您进行分析与建议。

首先,根据您提供的信息,该芯片在STC-ISP(v695U)工具下可被正常识别,且“检测”功能返回了有效信息,说明芯片本身通信功能基本正常。然而,在设备管理器中未能识别出串口,这可能涉及以下几个方面的原因:

1. 硬件连接问题  
   请确认USB转串口模块(如CH340、CP2102等)是否正确连接至芯片的UART引脚。STC8G1K08A-8PIN支持UART0和UART1,具体引脚分配需参考数据手册。若使用的是UART0,请确保P3.0(RXD)和P3.1(TXD)已正确连接;若使用UART1,则需确认P4.0(RXD1)和P4.1(TXD1)是否接线正确。

2. 串口初始化配置不正确  
   您提供的代码片段中,主要实现了UART2的中断处理函数,但未展示完整的初始化流程。请确认以下几点:
UART2是否已启用?S2CON寄存器中的SM2位应设置为0(多机通信模式关闭),并设置为方式1(SM0=0, SM1=1)。
是否开启了UART2中断?IE2寄存器中的ES2位应置1。
确保定时器2已正确配置用于波特率生成。T2H和T2L寄存器应根据所需波特率进行计算并赋值。

3. 驱动程序问题  
   若硬件连接无误,但设备管理器仍无法识别串口,可能是由于USB转串口芯片的驱动未正确安装或版本过旧。建议您尝试更新或重新安装对应的USB转串口驱动(如CH340驱动、CP2102驱动等),并在设备管理器中检查是否存在未知设备或冲突设备。

4. 固件逻辑问题  
   您的代码中使用了UART2进行数据传输,但未展示完整的发送逻辑。请确保在main函数中调用了UART2的初始化函数,并通过S2BUF进行数据发送。同时,注意buffer的读写指针是否同步,避免因缓冲区溢出导致数据丢失。

5. 系统资源冲突  
   STC8G1K08A-8PIN内部资源有限,若其他外设(如定时器、ADC等)占用了相同资源,可能导致串口功能异常。建议在代码中检查各外设的初始化顺序与资源占用情况,必要时进行资源重分配。

综上所述,建议您按照以下步骤进行排查:
1. 检查硬件连接是否稳固,特别是USB转串口模块与芯片的引脚对应关系;
2. 核对UART2的初始化配置是否完整,包括波特率设置、中断使能等;
3. 更新或重新安装USB转串口驱动;
4. 在main函数中添加必要的串口发送逻辑,并验证数据是否成功发送;
5. 若问题仍未解决,建议使用示波器或逻辑分析仪检测TXD引脚是否有信号输出,以进一步判断问题所在。

如您仍有疑问或需要更详细的指导,请提供完整的代码以及原理图截图,我们将为您提供更针对性的技术支持。感谢您的理解与配合,祝您开发顺利!

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:536
  • 最近打卡:2025-08-24 00:00:11
已绑定手机

19

主题

3257

回帖

5699

积分

论坛元老

积分
5699
发表于 5 天前 | 显示全部楼层
STC8G1K08A-8PIN是模拟USB接口不是物理USB口,程序是UART输出,要接USB转TTL才能显示。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:537
  • 最近打卡:2025-08-24 01:00:11
已绑定手机

86

主题

5979

回帖

1万

积分

超级版主

积分
10832
发表于 5 天前 | 显示全部楼层
8G1K08A无USB,下载是软件模拟USB
用户程序不支持USB直接通信,需要连接USB转串口工具才能使用串口助手
8脚带USB可以用8H2K12U-SOP8
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-19 20:08:52
已绑定手机

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 5 天前 | 显示全部楼层
好的感谢两位大佬教导, 明白了
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 03:37 , Processed in 0.117319 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表