STM32
直播中

万物死

8年用户 1262经验值
擅长:MEMS/传感技术
私信 关注
[问答]

STM32的UART在奇偶校验设置注意事项有哪些?

STM32的UART在奇偶校验设置注意事项有哪些?

回帖(1)

h1654155275.5748

2021-12-10 09:29:13
STM32的UART在初始化时,我们通常用到最多的就是无校验位,1停止位。但是有时候我们也会遇到一些特殊的情况,比如一些设备要求有奇偶校验,那么我们要根据情况设定stm32的寄存器。
以下以stm32库函数为例说明stm32在设置寄偶检验时的误区:
  
  USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;  //8数据位
  USART_InitStructure.USART_StopBits = USART_StopBits_1; //1停止位
  USART_InitStructure.USART_Parity = USART_Parity_No;         //0奇偶校验位
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode =USART_Mode_Tx;


  USART_Init(USART3, &USART_InitStructure);
以上代码为我们常用的参数初始化代码。
当USART_InitStructure.USART_Parity = USART_Parity_Odd;
或USART_InitStructure.USART_Parity = USART_Parity_Even;
就是寄校验或偶校验时,此时如果数据位还是USART_WordLength_8b就会出问题,因为校验位此时占用了一位
我们在初始化时就要把数据位设置为9位
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分