新聞中心
linux是一款多功能的開源操作系統(tǒng),它在嵌入式系統(tǒng)開發(fā)方面的應(yīng)用也越來越廣泛。串口緩沖區(qū)作為串口轉(zhuǎn)換的基礎(chǔ)技術(shù),是串口通信和串口數(shù)據(jù)發(fā)送必不可少的組成部分。本文將簡(jiǎn)要介紹Linux下如何清空串口緩沖區(qū)。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出昆明免費(fèi)做網(wǎng)站回饋大家。
在Linux下清空串口緩沖區(qū)最方便的方法是使用工具termios??梢酝ㄟ^termios清空串口緩沖中的所有數(shù)據(jù),并且有兩種不同的方法實(shí)現(xiàn):
方法一:termios的 tcflush 函數(shù)
tcflush可以用來清空Linux下的串口緩沖區(qū)。它的定義如下:
int tcflush(int fd, int queues);
其中fd是串口的文件描述符,queues是清空的字節(jié)緩沖區(qū)的類型,有以下三種可供選擇:
TCIFLUSH:清空串口的接收緩沖數(shù)據(jù);
TCOFLUSH:清空串口的發(fā)送緩沖數(shù)據(jù);
TCIOFLUSH:清空串口的接收緩沖數(shù)據(jù)和發(fā)送緩沖數(shù)據(jù)。
示例代碼如下:
/* 清空收發(fā)緩沖區(qū)數(shù)據(jù) */
tcflush(fd, TCIFLUSH);
tcflush(fd, TCOFLUSH);
tcflush(fd, TCIOFLUSH);
方法二:termios的 tcflow 函數(shù)
tcflow也可以用來清空Linux下的串口緩沖區(qū)。它的定義如下:
int tcflow(int fd, int action);
其中fd是串口的文件描述符,action是有以下三種可供選擇:
TCION:把接受緩沖區(qū)的數(shù)據(jù)送至串口的發(fā)送緩沖區(qū),然后清空收發(fā)緩沖區(qū);
TCOOFF:把串口發(fā)送緩沖區(qū)的數(shù)據(jù)送至接受緩沖區(qū),然后清空收發(fā)緩沖區(qū);
TCOON :把串口接受緩沖區(qū)的數(shù)據(jù)送至發(fā)送緩沖區(qū),然后清空收發(fā)緩沖區(qū)。
示例代碼如下:
/* 清空收發(fā)緩沖區(qū)數(shù)據(jù) */
tcflow(fd, TCION);
tcflow(fd, TCOOFF);
tcflow(fd, TCOON);
以上就是Linux下清空串口緩沖區(qū)的小技巧。清空串口緩沖區(qū)可以有效避免串口出現(xiàn)數(shù)據(jù)不正確的情況,也可以有效的傳輸大量的數(shù)據(jù),可見其大作用。最后,來把串口緩沖區(qū)清一清,以便順利進(jìn)行下一步通信。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
當(dāng)前標(biāo)題:Linux清空串口緩沖區(qū):小技巧大作用(linux清空串口緩沖區(qū))
文章源于:http://fisionsoft.com.cn/article/copejch.html


咨詢
建站咨詢
