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