103的串口初始化不能有校验位和停止位吗

[复制链接]
3996|6
 楼主| bigfacecat 发表于 2010-9-10 09:35 | 显示全部楼层 |阅读模式
103默认串口设置是1个停止位,无校验,8数据位
我改成2个停止位,或者奇校验/偶校验,PC也按照这个参数设置,但是PC死活收到的不是正确数据

比如103发0x31,PC收到的是0x91
IJK 发表于 2010-9-10 09:49 | 显示全部楼层
STM32F103当然支持校验位,也支持2个停止位。但是印象里它不支持2个停止位、同时奇校验/偶校验;设置2个停止位时,不支持校验;印象里这种做法跟PC是一致的。
 楼主| bigfacecat 发表于 2010-9-10 10:11 | 显示全部楼层
我设置了1个停止位,EVEN校验,103发送“12345”,PC收到“\xb1\xd9\x26\x5b\fe”

这个你们可以试下
可能是103芯片的bug
香水城 发表于 2010-9-10 10:19 | 显示全部楼层
我设置了1个停止位,EVEN校验,103发送“12345”,PC收到“\xb1\xd9\x26\x5b\fe”

这个你们可以试下
可能是103芯片的bug
bigfacecat 发表于 2010-9-10 10:11


楼主是否认为没有人试过,这样的Bug居然让你碰上了。你能贴出示波器的波形证明这是一个Bug吗?
 楼主| bigfacecat 发表于 2010-9-10 13:57 | 显示全部楼层
示波器看了是没有校验位的

而且原因我也找到了,是对103串口理解上的问题
103串口设置为8bit宽度的时候,如果此时设置校验位,实际上是7bit数据位+1bit校验位的格式,也就是说103的数据位宽度的含义是数据位+校验位的数据宽度,如果没有设置校验位,那么实际的数据位就是8

所以我把PC的串口数据位设置为7,结果就正确了。
香水城 发表于 2010-9-11 11:38 | 显示全部楼层
如果PC端要求8个数据位+一个奇偶检验位,在STM32端要设置为9位数据位再使能奇偶检验。

配置STM32的数据位,需要算上奇偶检验位。
yhnu1214 发表于 2014-7-8 15:40 | 显示全部楼层
香水城 发表于 2010-9-11 11:38
如果PC端要求8个数据位+一个奇偶检验位,在STM32端要设置为9位数据位再使能奇偶检验。

配置STM32的数据位 ...

香主真给力,我也遇到这个问题了,按照你的回答,解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

46

帖子

0

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