CH32V208W的UART是否支持7个数据位?

现在头文件只要两种:

/* USART_Word_Length */

#define USART_WordLength_8b                  ((uint16_t)0x0000)

#define USART_WordLength_9b                  ((uint16_t)0x1000)



支持7b吗?

您好,CH32V208硬件支持8个数据位与9个数据位,如实现7个数据位可通过软件实现:串口设置为8,N,1模式 在发送数据时通过程序判断偶校验然后填到数据位的第8位,这样数据发送时就是7位数据位,1位偶校验,1位停止位。在接收数据时去掉数据第8位即可。


@沁恒张工 问题是大部分情况下,我们无法控制接收端,例如有些PLC就是要7位数据位的.

有什么办法解决吗?


您好,在接收端不可控的情况下建议使用转接芯片,将收到的8位转为7位后送到PLC。


@沁恒张工  有对应的转换芯片推荐吗?


数据位7位的话,可以试试用8位模式,然后发送的数据最高位置一,不能是0,这样基本上都能兼容的,因为很多PLC都不判断停止位。如果PLC严格判断停止位的话就没办法了。


只有登录才能回复,可以选择微信账号登录