现在头文件只要两种:
/* USART_Word_Length */
#define USART_WordLength_8b ((uint16_t)0x0000)
#define USART_WordLength_9b ((uint16_t)0x1000)
支持7b吗?
现在头文件只要两种:
/* 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严格判断停止位的话就没办法了。