GD32串口奇偶校验乱码问题
我在调试GD32串口通信时,不使用奇偶检验,串口是能正常通信,但是加上奇偶校验,电脑上的串口调试助手会显示乱码。单片机上的串口参数设置为:8-1-EVEN,串口助手的数据位设置为8或7,接收都是乱码。本帖最后由 tonykuai 于 2025-7-25 17:40 编辑
不知道你使用的芯片型号。你仔细阅读一下用户手册。有的芯片,当使用奇偶校验时,需要设置为9位数据模式。即:9-1-EVEN. tonykuai 发表于 2025-7-25 17:39
不知道你使用的芯片型号。你仔细阅读一下用户手册。有的芯片,当使用奇偶校验时,需要设置为9位数据模式。 ...
果然是懂行的,407的手册里也没写 1位start+8位bits+1位校验位+1位停止位
校验位是独立于有效数据8bit之外的 跟我的示波器一样,设置数据位为9位显示就正常了。
大大财迷 发表于 2025-7-26 08:06
1位start+8位bits+1位校验位+1位停止位
不同的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位模式
} CXFLBH 发表于 2025-7-26 11:02
跟我的示波器一样,设置数据位为9位显示就正常了。
示波器什么型号的,看着很吊啊 大大财迷 发表于 2025-7-26 15:44
示波器什么型号的,看着很吊啊
麦科信TO1004 根据用户手册和社区经验,当启用奇偶校验功能时,必须将UART配置为9位模式 具体需结合芯片手册的电气特性说明
页:
[1]