论坛» DIY与开源设计» 电子DIY

串口通信时最高位始终置1的问题已解决

助工
2012-05-10 07:23 1楼
串口通信时数据最高位都被置1了,比如STM32发送0给电脑,串口调试助手收到的数据是0x80,这是为什么?这个问题困扰我一整天了。。。 注:时钟,波特率都设置正确
问题已解决,确实是设置了奇偶校验位,导致出错。
USART_InitStructure.USART_Parity = USART_Parity_Even;
改为:
USART_InitStructure.USART_Parity = USART_Parity_No;
原本以为ISP串口下载程序需要把loader设置成Even,所以把串口程序也改成Even了。

这里再次感谢hanshuyujifen2帮我指正!
工程师
2012-05-10 08:58 2楼
波特率是否一直,最好用11.0592M的晶振,还有就是周围有没有干扰
专家
2012-05-10 09:43 3楼
好像不是波特率的事情
助工
2012-05-10 12:17 4楼
很多时候软件出错并不一定仅仅是软件的问题,检查你硬件线路上可能发生干扰的线路,适当的增加去耦电容。
助工
2012-05-10 13:59 5楼
应该不是硬件的问题
工程师
2012-05-10 21:54 6楼

有可能是晶振的问题啊,或者波特率的问题,只能一个一个的排除

高工
2012-05-10 22:02 7楼
应该不是硬件问题
院士
2012-05-10 22:39 8楼
不防把软件代码帖出来。让大家帮你分析一下。
高工
2012-05-10 23:05 9楼
程序发我邮箱,明天给你看看。hanshuyujifen#yahoo.com.cn
助工
2012-05-11 07:21 10楼
已发送
共27条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]