如題,Uart當中可以設定資料長度格式為7, 8bits等。我們最常用的就是8N1,也就是8bits/None parity/1 stop bit
但是在編寫程式時是沒有所謂7bits這種數據類型,因此我在想實際寫code時應該是使用uint8_t宣告一組陣列資料,例如:
uint8_t buffer[8];
buffer[0] = 0x01;
buffer[1] = 0x02;
buffer[2] = 0x03;
buffer[3] = 0x04;
buffer[4] = 0x05;
buffer[5] = 0x06;
buffer[6] = 0x07;
buffer[7] = 0x08;
然後將該資料內容做bit operation轉換成7bits格式,但問題是我不太清楚7bits與8bits之間的轉換關係,這是否會涉及到parity?有人知道嗎?
我的想法是這樣,例如7E1會將空出來的1個bit用even parity去補上,7O1也是相同的道理。但假如是7N1呢?這種狀況會吃到stop bit,那是否要看硬體是否支援?
Google這兩篇供參考
看看合不合用
UART C 語言範例
7/8bits 只要設 CS7/CS8