标题: 关于STC15F2K32S2的串口失效的问题 [打印本页]

作者: xiaobendan001    时间: 2024-11-26 12:44
标题: 关于STC15F2K32S2的串口失效的问题
连接串口屏,偶尔会有单片机的TX发送脚只有均匀的脉冲输出,没有数据。对于接收,是有反应的,单片机的基本功能都有基本正确的反应,说明程序还是在正常跑的。只是发出来的内容不对,或者是没有内容。
作者: 188610329    时间: 2024-11-26 14:38
TX 脚 只有均匀脉冲输出,最大可能是:  SCON = 0x10; 或者 SCON = 0x00;  
请确认 SCON = 0x50/0x90/0xD0;
作者: STC庄伟    时间: 2024-11-26 15:33
STC8G系列-串口相关程序 (1).rar (249.23 KB, 下载次数: 0)
作者: xiaobendan001    时间: 2024-11-26 15:43
188610329 发表于 2024-11-26 14:38
TX 脚 只有均匀脉冲输出,最大可能是:  SCON = 0x10; 或者 SCON = 0x00;  
请确认 SCON = 0x50/0x90/0xD0 ...

是系统正常运行过程中,比如连续运行了几十个小时后,机器停了,早上去看,就是通讯失败,示波器看就是这样了。难道是SCON要不断的设置,而不是初始化一下就OK?
作者: xiaobendan001    时间: 2024-11-26 15:45
188610329 发表于 2024-11-26 14:38
TX 脚 只有均匀脉冲输出,最大可能是:  SCON = 0x10; 或者 SCON = 0x00;  
请确认 SCON = 0x50/0x90/0xD0 ...

是不是这个函数要经常调用一下?
void UartInit(void)                //9600bps@22.1184MHz
{
        P_SW1 = 0x80;                 //串口转移到P1.6,1.7
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x01;                //串口1选择定时器2为波特率发生器
        AUXR |= 0x04;                //定时器2时钟为Fosc,即1T
        T2L = 0xC0;                //设定定时初值
        T2H = 0xFD;                //设定定时初值
        AUXR |= 0x10;                //启动定时器2
}

作者: Tonghao666    时间: 2024-11-27 13:33
你去确认下UART初始化函数是不是有正确调用,还有初始化过程中的所有参数(波特率、数据位、停止位..............)是不是都设置正确。如果是初始化不完整或是错误,TX脚确实会出问题。
作者: lkc8210    时间: 2024-11-27 15:43
请贴上发送代码和串口相关的代码
作者: xiaobendan001    时间: 2024-11-27 16:44
Tonghao666 发表于 2024-11-27 13:33
你去确认下UART初始化函数是不是有正确调用,还有初始化过程中的所有参数(波特率、数据位、停止位........ ...

这些都没问题,板子是可以正常运行的,有时候是十几个小时出现一次,有时候要持续不断电运行5天才会出现。极少数就很频繁,几小时出现一次,一旦出现只能断电重启




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1