STM32F0串口接收最高位总是0
先说明是老程序了,之前没问题,一直在用。今天突然接收最高位总是0,比如发0xFF会收到0x7F,按照串口发送顺序,就是最后一位(停止位前)总是读到0。串口配置是8位数据、1位停止位、无奇偶校验、无流控制。刚才我用官方库里面的代码跑了以下,可以收到完整数据。
请问下各位大神,这大概是怎么个问题?
一切以波形说话。
用你的STM32F0往出发数据,0x55、0xaa、0x5a、0xa5,示波器看一下波形。对比一下接收和发送的波形有什么不同,位数和波特率。
你接收发现的问题,同样可以在发送上反映出来。
另外,你是用什么给STM32F0发的数据?
之前遇到过USB转232线不靠谱问题,当发单字节的时候没问题,当连续发头0xff的时候,就会有问题,观察波形发现是连续发送后,USB转232线的波形出问题了。 你程序设置为7 bit工作模式?看看波形怎么样吧。看看波形对不对? 应该是系统时钟频率出现偏差了。硬件问题。 看数据图是不是对的,检查时钟是否正确配置 不像硬件问题,估计还是设置问题
看看原先用的MCU和现在的新品是不是有什麽改动(是不是厂家版本升级了,在这方面做了改正) 先检查硬件,换块板子看看 从现象来看,应该是串口的配置不匹配导致。看一下源码中串口的配置。 本帖最后由 everkimage 于 2018-6-7 10:54 编辑
昨晚找了好久,发现是接收中断数据接收后与了下0x7F,不知道当初是怎么想的,可能是作测试忘了删掉了。对不起大家,浪费大家时间。非常感谢你们。:L
页:
[1]