• 正文
    • 使用open()函數(shù)打開串口設(shè)備
    • 獲取當前配置參數(shù)
    • 寫配置
    • 清空緩沖區(qū)
    • 配置生效
    • 串口接收函數(shù)
    • 串口發(fā)送函數(shù)
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-串口通訊編程示例之串口編寫程序

2024/10/24
1676
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

使用open()函數(shù)打開串口設(shè)備

首先使用open()函數(shù)打開串口設(shè)備/dev/ttymxc6,設(shè)備使用了O_RDWR | O_NOCTTY | O_NDELAY標志,分別代表以讀寫方式打開、不讓設(shè)備成為控制終端且設(shè)置非阻塞模式,也就是當無法打開設(shè)備時,不會在原地等待,會馬上返回;

上面使用了if語句判斷文件描述符fd,如果open()返回的文件描述符<0,則代表設(shè)備打開失敗,輸出“Can't Open Serial Port /dev/ttymxc6”;

如果是其他情況,則說明設(shè)備打開成功,把設(shè)備的波特率,數(shù)據(jù)位,停止位,校驗位打印出來;

獲取當前配置參數(shù)

前面介紹過tcgetattr()函數(shù)的用法,在這里就是獲取上面open()函數(shù)返回的文件描述符fd作為tcgetattr()的參數(shù),然后創(chuàng)建一個termios名為oldtio來儲存串口舊的參數(shù)。

寫配置

程序中是對newtio結(jié)構(gòu)體中的c_cflag加上CLOCAL | CREAD,意為使驅(qū)動程序啟動接收字符裝置,同時忽略串口信號線的狀態(tài)。

另外對c_cflag與上了~CSIZE,即設(shè)置數(shù)據(jù)位。

清空緩沖區(qū)

使用tcflush()函數(shù)清空緩沖區(qū),避免本次將之前殘存的數(shù)據(jù)發(fā)送出去引起混亂。

配置生效

前面已經(jīng)完成了對 struct termios 結(jié)構(gòu)體各個成員進行配置,但是配置還未生效,需要將配置參數(shù)寫入到終端設(shè)備(串口硬件),使其生效。通過 tcsetattr()函數(shù)將配置參數(shù)寫入到硬件設(shè)備。

串口接收函數(shù)

使用read()函數(shù)讀緩沖區(qū)的數(shù)據(jù),即串口接收:

串口發(fā)送函數(shù)

使用write()函數(shù)發(fā)送緩沖區(qū)的數(shù)據(jù),即串口發(fā)送:

飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦