lvween 发表于 2023-4-20 13:49:51

STC8G1K08 uart传输错误率高怎么办


STC8G1K08 uart配置如下,发现跟电脑通讯,波特率已经很低了还是通讯错误率很高,发几次才出来一个正确的

void Uart2Isr() interrupt 8
{
    if (S2CON & 0x02)
    {
      S2CON &= ~0x02;
      busy2 = 0;
    }
    if (S2CON & 0x01)
    {
                S2CON &= ~0x01;
                buffer = S2BUF;
                wptr &= 0x0f;
    }
}

void Uart2Init()                //2400bps@11.0592MHz
{
        P_SW2 = 0x00;
        S2CON = 0x10;                //8位数据,可变波特率
        T2L = 0x80;                        //设置定时初始值
        T2H =0xFB;                //设置定时初始值
        AUXR |= 0x14;                //定时器2开始计时
        wptr = 0x00;
        rptr = 0x00;
        busy2 = 0;
        IE2 = 0x01;
}

void Uart2Send(char dat)
{
    while (busy2);
    busy2 = 1;
    S2BUF = dat;
}

void Uart2SendStr(char *p)
{
    while (*p)
    {
      Uart2Send(*p++);
    }
}


32G12K128 发表于 2023-4-20 15:01:19

您用我司的范例配合串口助手再测试下试试:






神农鼎 发表于 2023-4-20 15:27:58

可能楼主的 USB 转串口误差大,换个 STC的【一箭双雕之USB转双串口】测试下

jindizhiwa 发表于 2023-4-21 16:00:48

我也是发现STC8G1K08的串口不稳定,也没解决呢

神农鼎 发表于 2023-4-21 17:16:26

不是 STC8G1K08的串口水平不够,是新人实践还是弱了些,另外用的第3方USB转串口可能也有问题
参考下面的程序,知到自己水平弱在哪


【新提醒】求STC8H/STC8G系列 4个串口同时通信的演示程序,Modbus 演示程序 - 串行口,DMA支持的4组串口 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

页: [1]
查看完整版本: STC8G1K08 uart传输错误率高怎么办