【STM32】串行通信的错误校验

(1)奇偶校验
在发送数据时,数据位之后的1位称为奇偶校验位。奇校验时,数据中“1”的个数与在验位“1”的个数之和应为奇数。偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。
接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。奇偶检验只能检验出单个位数出现错误的情况。
例如,数据位为8位,传输内容为00110101,数据中有4个1。如果采用奇校验,则校验位应为1,以保证数据位和校验位中“1”的个数之和为奇数。如果采用偶校验,则校验位应为0,以保证数据位和校验位中“1”的个数之和为偶数。校验位的产生一般由硬件自动完成,用户只需要使能相应的控制位即可。
(2)代码和校验
代码和校验是发送方将所有要发送的数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方在接收数据的同时,对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符表示传输正常,不相符表示传输过程中出现了差错,需要重新发送。
(3)循环冗余校验
循环冗余校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于磁盘信息的传输以及存储区的完整性校验等场合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值