• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

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

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

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

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

如果是其他情況,則說(shuō)明設(shè)備打開(kāi)成功,把設(shè)備的波特率,數(shù)據(jù)位,停止位,校驗(yàn)位打印出來(lái);

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

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

寫(xiě)配置

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

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

清空緩沖區(qū)

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

配置生效

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

串口接收函數(shù)

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

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

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

飛凌嵌入式

飛凌嵌入式

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

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

查看更多

相關(guān)推薦