linux串口應(yīng)用開發(fā)

linux串口應(yīng)用開發(fā)

ID:39970289

大?。?24.31 KB

頁數(shù):21頁

時間:2019-07-16

linux串口應(yīng)用開發(fā)_第1頁
linux串口應(yīng)用開發(fā)_第2頁
linux串口應(yīng)用開發(fā)_第3頁
linux串口應(yīng)用開發(fā)_第4頁
linux串口應(yīng)用開發(fā)_第5頁
資源描述:

《linux串口應(yīng)用開發(fā)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、串口程序設(shè)計串口概述用戶常見的數(shù)據(jù)通信的基本方式可分為(1)并行通信:用多條數(shù)據(jù)線將各位同時傳送特點(diǎn):傳送速度快,適用于短距離、速度要求高的場合。(2)串行通信:用一條數(shù)據(jù)線一位位的順序傳送特點(diǎn):成本低,適用于遠(yuǎn)距離、速度慢的場合。串行口是計算機(jī)一種常用接口。常用串口是RS-232-C接口(又稱EIARS-232-C),是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。1串口程序設(shè)計異步串行I/O(UART)方式:將傳輸數(shù)據(jù)的每個字符一位接一位(例如先低位、后高位)地

2、傳送。接收方對于同一根線上一連串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。在微型計算機(jī)中大量使用異步串行I/O方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實(shí)現(xiàn)較容易。發(fā)送數(shù)據(jù)2串口程序設(shè)計串口通訊電纜接線方式3串口程序設(shè)計序號信號名稱符號流向功能2發(fā)送數(shù)據(jù)TXDDTE→DCEDTE(數(shù)據(jù)終端設(shè)備)發(fā)送串行數(shù)據(jù)3接收數(shù)據(jù)RXDDTE←DCEDTE接收串行數(shù)據(jù)4請求發(fā)送RTSDTE→DCEDTE請求DCE(數(shù)據(jù)通訊設(shè)備)將線路切換到發(fā)送方式5允許發(fā)送CTSDTE←DCEDCE告訴DT

3、E線路已接通可以發(fā)送數(shù)據(jù)6數(shù)據(jù)設(shè)備準(zhǔn)備好DSRDTE←DCEDCE準(zhǔn)備好7信號地信號公共地8載波檢測DCDDTE←DCE表示DCE接收到遠(yuǎn)程載波20數(shù)據(jù)終端準(zhǔn)備好DTRDTE→DCEDTE準(zhǔn)備好22振鈴指示RIDTE←DCE表示DCE與線路接通,出現(xiàn)振鈴串口的引腳說明4串口程序設(shè)計S3C2410X內(nèi)部具有兩個獨(dú)立的UART控制器,每個控制器都可以工作在Interrupt模式或者DMA模式。同時,每個UART均具有16字節(jié)的FIFO,支持最高波特率230.4Kbps。串口配置主要包括波特率、起始位數(shù)量、數(shù)據(jù)位數(shù)量、停止位數(shù)量和流控協(xié)議。在

4、Linux下串口文件位于/dev下串口一為/dev/ttyS0串口二為/dev/ttyS15串口程序設(shè)計串口的設(shè)置主要是設(shè)置structtermios結(jié)構(gòu)體的各成員值。structtermios{unsignedshortc_oflag;/*輸出模式標(biāo)志*/unsignedshortc_cflag;/*控制模式標(biāo)志*/unsignedshortc_lflag;/*區(qū)域模式標(biāo)志*unsignedcharc_line;/*行控制linediscipline*/unsignedcharc_cc[NCC];/*控制特性*/unsignedsho

5、rtc_iflag;/*輸入模式標(biāo)志*/};6串口程序設(shè)計1、設(shè)置參數(shù)的實(shí)現(xiàn)示例:tcgetattr(fd,&oldtio),該函數(shù)得到與fd指向?qū)ο蟮南嚓P(guān)參數(shù),并將他們保存于oldtio引用的結(jié)構(gòu)中。保存原先配置if(tcgetattr(fd,&oldtio)!=0){Perror(“error”);Return-1;}7串口程序設(shè)計2、設(shè)置參數(shù)的實(shí)現(xiàn)示例:激活選項(xiàng)CLOCAL和CREADCLOCAL用于本地連接CREAD用于接收使能例:newtio.c_cflag

6、=CLOCAL

7、CREAD8串口程序設(shè)計3、設(shè)置參數(shù)的實(shí)現(xiàn)示例:設(shè)置

8、波特率輸入波特率設(shè)置:cfsetispeed輸出波特率設(shè)置:cfsetospeed例:cfsetispeed(&newtio,B19200);/*設(shè)置為19200Bps*/cfsetospeed(&newtio,B19200);9串口程序設(shè)計4、設(shè)置參數(shù)的實(shí)現(xiàn)示例:設(shè)置數(shù)據(jù)位大小首先去掉數(shù)據(jù)位中的掩碼,在重新設(shè)置。例:newtio.c_cflag&=~CSIZE;newtio.c_cflag

9、=CS8;10串口程序設(shè)計5、設(shè)置參數(shù)的實(shí)現(xiàn)示例:設(shè)置奇校驗(yàn)位newtio.c_iflag

10、=(INPCK

11、ISTRIP)//INPCK奇偶校驗(yàn)使

12、能;ISTRIP除去奇偶校驗(yàn)位newtio.c_cflag

13、=PARODD;//奇校驗(yàn)newtio.c_cflag

14、=PARENB;//校驗(yàn)位使能課堂練習(xí)一:設(shè)置偶校驗(yàn)位newtio.c_iflag

15、=(INPCK

16、ISTRIP);newtio.c_cflag&=~PARODD;newtio.c_cflag

17、=PARENB;11串口程序設(shè)計6、設(shè)置參數(shù)的實(shí)現(xiàn)示例:設(shè)置停止位下面是設(shè)置停止位為1的代碼:newtio.c_cflag&=~CSTOPB;設(shè)置最少字符和等待時間newtio.c_cc[VTIME]=0;newtio.c_cc[V

18、MIN]=0;12串口程序設(shè)計7、設(shè)置參數(shù)的實(shí)現(xiàn)示例:處理要寫入的引用對象tcflush(fd,queue_selector);queue_selector取值如下:TCIFLUSH:刷新收到的數(shù)據(jù)但不讀取

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。