• 【小知识】使用串口8bit,7bit和6bit数据格式的奇偶校验问题


    这里以STM32H7为例进行说明,先看支持的校验格式:

     

    主要是三种,6bit数据 + 1bit校验,7bit数据+1bit校验,8bit数据+1bit校验:

     

    而发送寄存器和接收寄存器都是9bit格式的:

     

    那么重点来了,校验位是串口外设硬件完成的,对应的数值也在发送/接收寄存器上。操作8bit数据+1bit格式的时候感觉不出来,因为我们一般都是仅读取寄存器的8bit。

    操作6bit数据 + 1bit校验,7bit数据+1bit校验就有问题了,会把校验位数值也读出来。

    简单的测试
    7bit数据+1bit校验的串口回环(RX和TX短接)奇校验效果:

    发送hex数值11 ,22, 33, 44后,反馈的数据把校验位也给读出来了91, A2,B2,C4,即bit7都是1。

     

    软件屏蔽校验位后,正常效果:

     

    微信公众号:armfly_com 安富莱论坛:www.armbbs.cn 安富莱淘宝:https://armfly.taobao.com
  • 相关阅读:
    2016第17周四
    2016第17周三
    2016第17周二
    OSGI框架学习
    2016年第16周日
    2016第16周六
    如何培养技术洞见力
    2016第15周四
    深入浅出ClassLoader
    Linux智能小开关rfkill
  • 原文地址:https://www.cnblogs.com/armfly/p/15629465.html
Copyright © 2020-2023  润新知