超聲波明渠流量計(jì)污水測(cè)量的設(shè)計(jì)與探討 五十四
6.1.5串行通信模塊
同所有的設(shè)備一樣,本系統(tǒng)也是通過(guò)設(shè)備文件來(lái)訪問(wèn)串口的,即在訪問(wèn)時(shí)打開相應(yīng)設(shè)備文件。本系統(tǒng)中只使用了UART來(lái)進(jìn)行通信,串行接口UART對(duì)應(yīng)設(shè)備文件
/dev/ttyS,編寫串口通信程序主要分為以下部分:
1.打開串口
打開串口通過(guò)用標(biāo)準(zhǔn)的文件打開函數(shù)操作,這里打開串口l:
openoi函數(shù)的第一個(gè)參數(shù)指定要打開的設(shè)備名,參數(shù)2設(shè)定打開方式;0 RDWR代
表可讀可寫;0一NOCTTY指定打開的睪121 0不用于終端控制,只用于宰行通信,這樣串121不受其他輸入的影響;0 NONBLOCK表示端口以非阻塞方式打開。
2.設(shè)置串口屬性
1)使用tcgetattr()和tcsetattr()函數(shù)獲取和設(shè)置串El屬性
其中,newtio是結(jié)構(gòu)termios形式的數(shù)據(jù)結(jié)構(gòu),用于存放串豳屬性。
2)使用函數(shù)cfsetispeed()和cfsetospeed()設(shè)置波特率。這兩個(gè)函數(shù)分別設(shè)置入
端和出口端的速率,它們也是通過(guò)改變structtermios結(jié)構(gòu)來(lái)實(shí)現(xiàn)的。
3)設(shè)置波特率
4)設(shè)置數(shù)據(jù)流控制:
5)設(shè)置數(shù)據(jù)位
6)設(shè)置奇偶校驗(yàn)位
3.讀寫串口
成功打開串口并設(shè)置好串口屬性就可以對(duì)串口進(jìn)行讀寫操作,參數(shù)翅是要讀寫的串口描述符,Buff是要讀寫的緩沖區(qū),Len是要讀寫的字節(jié)長(zhǎng)度,nByte是讀寫函數(shù)返回的實(shí)際讀寫的字節(jié)數(shù)。
電磁流量計(jì) 超聲波流量計(jì)