不同的MCU在设置UART时对校验位的定义不同。有的是包含在数据位中的,当设置为有校验位,就要把数据位设置成9位。有的MCU是单独设置校验位的,只要设置有奇偶校验,就自动发送9位数据(包含校验位)。
不是你这种简单的加法。
我用的是GD32E230,设置时的代码:
if(flagParity)
{
usart_word_length_set(USART0, USART_WL_9BIT); //如果有奇偶校验,需要设置为9位模式
}
else
{
usart_word_length_set(USART0, USART_WL_8BIT); //无奇偶校验,设置为8位模式
}
|