[STM8] STM8L151串口实在搞不定了,求高人指点

[复制链接]
2402|4
 楼主| fqdatiancai 发表于 2017-10-20 17:41 | 显示全部楼层 |阅读模式
一个项目,使用STM8L151K4T6单片机,通过异步串口与无线传输的相关模块通讯(AT指令),9600bps,1停止位,无校验,外部12MHz晶振提供时钟。程序未使用ST的库
现在出现的问题是,程序呼叫AT之后,通讯模块返回了正常的应答,但随后,单片机疯狂的进入串口接收中断,根本停不下来。
通过在线调试和USART1_SR寄存器的数据判断,中断主要是由RXNE标志引起,而不是OR标志
中断服务可以退出,且退出后RXNE标志已被清除(在线调试单步运行时看到USART1_SR的RXNE和OR均为0),但退出后很快就会再次进入,间隔不超过半秒,而通过监听串口证实,此时实际上无任何数据输入单片机串口。
目前RX引脚已经使能了内部上拉,但没有作用。
异常发生时,串口发送时正常的,仍可以向外发送数据。
这个问题已经困扰了三天了,老板也在催,实在是搞不定啊,求大神指点,这究竟是咋回事?都有哪些可能?
临时.png
mmuuss586 发表于 2017-10-20 18:00 | 显示全部楼层
没用过STM8;

看下寄存器,有没有其它中断标志位也置位了,可以把串口中断相关的都清除标志位看看;
kingkits 发表于 2017-10-20 18:00 | 显示全部楼层
你还是把回送功能打开看看把,说不定有发现,怀疑你有没处理的内容
way2888 发表于 2017-10-20 20:14 | 显示全部楼层
清中断标志只需要先读SR,再读DR即可
husoffer 发表于 2017-10-25 10:32 | 显示全部楼层
你接收的数据是不是没有清除,导致一直能读到数据,进入中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部