关于STM32串口奇偶校验的问题

2019-07-21 00:46发布

以前都没用过奇偶校验,今天用了一下,发现问题了。  摘自手册中的一段:  偶校验:校验位使得一帧中的7或8个LSB数据以及校验位中’1’的个数为偶数。 
例如:数据=00110101,有4个’1’,如果选择偶校验(在USART_CR1中的PS=0),校验位将
是’0’。
奇校验:此校验位使得一帧中的7或8个LSB数据以及校验位中’1’的个数为奇数。
例如:数据=00110101,有4个’1’,如果选择奇校验(在USART_CR1中的PS=1),校验位将
是’1’。
传输模式:如果USART_CR1的PCE位被置位,写进数据寄存器的数据的MSB位被校验位替换
后发送出去(如果选择偶校验偶数个’1’,如果选择奇校验奇数个’1’)。如果奇偶校验失败,
USART_SR寄存器中的PE标志被置’1’,并且如果USART_CR1寄存器的PEIE在被预先设置的
话,中断产生。
注意红 {MOD}部分,虽然括号里的不太明白什么意思,不过按照前面说的,数据的MSB被校验位替换了,那发出去的数据不就错了? 实际用串口助手测试,STM32串口启用奇校验,串口助手也打开奇校验,STM32向串口发送“AT”结果串口助手接收窗口显示“刘”(不包括引号)。不知各位怎么看?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
好人
1楼-- · 2019-07-21 05:39
 精彩回答 2  元偷偷看……
xijiele
2楼-- · 2019-07-21 05:57
好吧,看上面的表格我明白了。。。
乐在其中
3楼-- · 2019-07-21 09:16
回复【2楼】xijiele:
---------------------------------
回复【2楼】xijiele:
---------------------------------
怎么回事?我也不太明白这里
乐在其中
4楼-- · 2019-07-21 09:22
 精彩回答 2  元偷偷看……
好人
5楼-- · 2019-07-21 11:17
回复【5楼】乐在其中:
---------------------------------
是的.但我只用过8位的数据.我现在都不知道7位的数据是用在哪里.
乐在其中
6楼-- · 2019-07-21 12:30
ASCII码是七位的

一周热门 更多>