現在頭文件只要兩種:
/* 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模式 在發(fā)送數據時通過程序判斷偶校驗然后填到數據位的第8位,這樣數據發(fā)送時就是7位數據位,1位偶校驗,1位停止位。在接收數據時去掉數據第8位即可。
@沁恒張工?問題是大部分情況下,我們無法控制接收端,例如有些PLC就是要7位數據位的.
有什么辦法解決嗎?
您好,在接收端不可控的情況下建議使用轉接芯片,將收到的8位轉為7位后送到PLC。
@沁恒張工? 有對應的轉換芯片推薦嗎?
數據位7位的話,可以試試用8位模式,然后發(fā)送的數據最高位置一,不能是0,這樣基本上都能兼容的,因為很多PLC都不判斷停止位。如果PLC嚴格判斷停止位的話就沒辦法了。