新聞中心
linux下實現(xiàn)串口通信編程

串口通信是物聯(lián)網(wǎng)領(lǐng)域常用到的一種網(wǎng)絡(luò)通信方式,可以在 Linux 中通過編程實現(xiàn)串口通信。下面我們就介紹 Linux 下實現(xiàn)串口通信的一些編程步驟。
首先,我們需要打開串口設(shè)備,這里可以使用 open 函數(shù),其原型如下:
int open( const char * pathname, int flags);
pathname 參數(shù)為串口設(shè)備名,例如“/dev/ttyS0”,flags 參數(shù)標(biāo)志打開串口設(shè)備的方式,常使用的有 O_RDWR|O_NOCTTY|O_NONBLOCK。
接著,我們可以通過 tcgetattr 函數(shù)和 tcsetattr 函數(shù)來查看和設(shè)置串口設(shè)備的所有屬性,其原型分別如下:
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);
但通常情況下,我們關(guān)心的是波特率 baudrate、數(shù)據(jù)位 data_bit、奇偶校驗 parity 以及停止位 stop_bit 等參數(shù),這些參數(shù)都可以通過 cfsetspeed 函數(shù)來設(shè)置,其原型如下:
int cfsetspeed(struct termios *tc, speed_t speed);
最后,可以使用 read 函數(shù)和 write 函數(shù)來實現(xiàn)串口讀寫的工作,其原型如下:
ssize_t read(int fd, void *buf, size_t count);
ssize_t write(int fd, const void *buf, size_t count);
以上就是 Linux 下實現(xiàn)串口通信編程的一般步驟,如果想增加一些控制,比如超時處理,還可以借助 select 函數(shù)來實現(xiàn),其原型如下:
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,struct timeval *timeout);
通過上述步驟,就可以在 Linux 中實現(xiàn)串口編程了。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前題目:Linux下實現(xiàn)串口通信編程(linux串口通信編程)
網(wǎng)站地址:http://www.dlmjj.cn/article/djoccgd.html


咨詢
建站咨詢
