<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Linux下串口應(yīng)用編程的研究

          基于嵌入式Linux下串口應(yīng)用編程的研究

          作者: 時間:2013-12-06 來源:網(wǎng)絡(luò) 收藏

            設(shè)置串口設(shè)備之前,需要先獲取當(dāng)前串口設(shè)備的屬性,這是因為結(jié)構(gòu)體termios的成員都是和特定寄存器對應(yīng)的,如果不先獲取以前的狀態(tài),可能將寄存器中的值全部覆蓋,從而導(dǎo)致通信失敗,并且在操作完串口設(shè)備以后,需要將串口設(shè)備的屬性恢復(fù)到以前的值。獲取當(dāng)前串口設(shè)備屬性的過程如下:

            tcgetattr(fd,new_cfg); / /從f d代表的串口設(shè)備中獲取當(dāng)前的狀態(tài)并將其保存在new_cfg中。

            接下來是將串口設(shè)備設(shè)置為原始模式,在本系統(tǒng)中需要使用原始模式進(jìn)行通信。

            cfmakeraw(new_cfg);

            將串口通信的字符大小設(shè)為8個字符new_cfg.c_cflag = ~CSIZE;

            new_cfg.c_cflag |= CS8;

            設(shè)置波特率

            cfsetispeed(new_cfg,BARDRATE); / / 設(shè)

            置輸入波特率

            cfsetospeed(new_cfg,BARDRATE); / / 設(shè)

            置輸出波特率

            設(shè)置奇偶校驗位,不適用奇偶校驗

            new_cfg.c_cflag = ~PARENB;

            new_cfg.c_iflag = ~INPCK;

            設(shè)置停止位,使用一個byte

            new_cfg.c_cflag = ~CSTOPB;

            設(shè)置讀取字符大小以及等待時間

            new_cfg.c_cc[VTIME]=50; //兩個字符之間

            等待超過5s返回

            new_cfg.c_cc[VMIN]=1; //最少讀取一個

            字符

            清除串口緩存

            該操作是必不可少的,否則會導(dǎo)致串口通信失敗。

            tcflush(fd,TCIOFLUSH);

            其中TCIOFLUSH表示清空串口的緩存。

            接下來需要激活配置if((tcsetattr(fd,TCSANOW,new_cfg))!=0)

            {

            // perror(”tcsetattr“);

            return 1;

            }

            串口初始化、串口屬性的設(shè)置的流程圖,如圖1所示。

            

            2.串口的讀寫和關(guān)閉

            利用串口通信的過程就是對串口設(shè)備的讀寫過程,只需要利用read()函數(shù)和write()函數(shù)對打開的串口設(shè)備的文件描述符操作即可。

            在操作完串口退出程序時,需要將打開的串口關(guān)閉,這個過程和關(guān)閉普通的文件一樣,調(diào)用close()函數(shù)即可完成。

            四、結(jié)束語

            本文以指紋識別系統(tǒng)的串口編程為例,闡述了系統(tǒng)下,串口編程的具體設(shè)置方法,在本文的基礎(chǔ)上再添加上層軟件的設(shè)計即可完成一個指紋識別系統(tǒng)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();