找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 739|回复: 7
打印 上一主题 下一主题
收起左侧

关于STC15F2K32S2的串口失效的问题

[复制链接]
跳转到指定楼层
#
ID:1109793 发表于 2024-11-26 12:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
连接串口屏,偶尔会有单片机的TX发送脚只有均匀的脉冲输出,没有数据。对于接收,是有反应的,单片机的基本功能都有基本正确的反应,说明程序还是在正常跑的。只是发出来的内容不对,或者是没有内容。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

7#
ID:1109793 发表于 2024-11-27 16:44 | 只看该作者
Tonghao666 发表于 2024-11-27 13:33
你去确认下UART初始化函数是不是有正确调用,还有初始化过程中的所有参数(波特率、数据位、停止位........ ...

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

使用道具 举报

6#
ID:161164 发表于 2024-11-27 15:43 | 只看该作者
请贴上发送代码和串口相关的代码
回复

使用道具 举报

5#
ID:940483 发表于 2024-11-27 13:33 | 只看该作者
你去确认下UART初始化函数是不是有正确调用,还有初始化过程中的所有参数(波特率、数据位、停止位..............)是不是都设置正确。如果是初始化不完整或是错误,TX脚确实会出问题。
回复

使用道具 举报

地板
ID:1109793 发表于 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
}
回复

使用道具 举报

板凳
ID:1109793 发表于 2024-11-26 15:43 | 只看该作者
188610329 发表于 2024-11-26 14:38
TX 脚 只有均匀脉冲输出,最大可能是:  SCON = 0x10; 或者 SCON = 0x00;  
请确认 SCON = 0x50/0x90/0xD0 ...

是系统正常运行过程中,比如连续运行了几十个小时后,机器停了,早上去看,就是通讯失败,示波器看就是这样了。难道是SCON要不断的设置,而不是初始化一下就OK?
回复

使用道具 举报

沙发
ID:961114 发表于 2024-11-26 15:33 | 只看该作者
STC8G系列-串口相关程序 (1).rar (249.23 KB, 下载次数: 0)
回复

使用道具 举报

楼主
ID:624769 发表于 2024-11-26 14:38 | 只看该作者
TX 脚 只有均匀脉冲输出,最大可能是:  SCON = 0x10; 或者 SCON = 0x00;  
请确认 SCON = 0x50/0x90/0xD0;
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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