![串口程序設計課件_第1頁](http://file4.renrendoc.com/view/22c853c23ea5c719cd394e63353ca600/22c853c23ea5c719cd394e63353ca6001.gif)
![串口程序設計課件_第2頁](http://file4.renrendoc.com/view/22c853c23ea5c719cd394e63353ca600/22c853c23ea5c719cd394e63353ca6002.gif)
![串口程序設計課件_第3頁](http://file4.renrendoc.com/view/22c853c23ea5c719cd394e63353ca600/22c853c23ea5c719cd394e63353ca6003.gif)
![串口程序設計課件_第4頁](http://file4.renrendoc.com/view/22c853c23ea5c719cd394e63353ca600/22c853c23ea5c719cd394e63353ca6004.gif)
![串口程序設計課件_第5頁](http://file4.renrendoc.com/view/22c853c23ea5c719cd394e63353ca600/22c853c23ea5c719cd394e63353ca6005.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、串口程序設計串口概述 用戶常見的數(shù)據(jù)通信的基本方式可分為(1)并行通信:用多條數(shù)據(jù)線將各位同時傳送 特點:傳送速度快,適用于短距離、速度要求高的場合。(2)串行通信:用一條數(shù)據(jù)線一位位的順序傳送 特點:成本低,適用于遠距離、速度慢的場合。 串行口是計算機一種常用接口。常用串口是 RS-232-C 接口(又稱 EIA RS-232-C),是在 1970 年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、 調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。1串口程序設計異步串行 I /O (UART)方式:將傳輸數(shù)據(jù)的每個字符一位接一位(例如先低位、后高位)地傳送。接收方對于同一根線上一連
2、串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復發(fā)送的信息,雙方必須協(xié)調工作。在微型計算機中大量使用異步串行 IO 方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實現(xiàn)較容易。 發(fā)送數(shù)據(jù)2串口程序設計串口通訊電纜接線方式 3串口程序設計序號信號名稱符號流向功能2發(fā)送數(shù)據(jù)TXDDTEDCEDTE(數(shù)據(jù)終端設備)發(fā)送串行數(shù)據(jù)3接收數(shù)據(jù)RXDDTEDCEDTE 接收串行數(shù)據(jù)4請求發(fā)送RTSDTEDCEDTE 請求 DCE(數(shù)據(jù)通訊設備)將線路切換到發(fā)送方式5允許發(fā)送CTSDTEDCEDCE 告訴 DTE 線路已接通可以發(fā)送數(shù)據(jù)6數(shù)據(jù)設備準備好DSRDTEDCEDCE 準備好 7信
3、號地信號公共地8載波檢測DCDDTEDCE表示 DCE 接收到遠程載波20數(shù)據(jù)終端準備好DTRDTEDCEDTE 準備好22振鈴指示RIDTEDCE表示 DCE 與線路接通,出現(xiàn)振鈴 串口的引腳說明4串口程序設計串口的設置主要是設置 struct termios 結構體的各成員值 。struct termiosunsigned short c_oflag;/* 輸出模式標志 */unsigned short c_cflag;/* 控制模式標志*/unsigned short c_lflag; /*區(qū)域模式標志 *unsigned char c_line; /*行控制line disciplin
4、e */unsigned char c_ccNCC; /* 控制特性 */ unsigned short c_iflag;/* 輸入模式標志 */; 6串口程序設計1、設置參數(shù)的實現(xiàn)示例: tcgetattr(fd,&oldtio),該函數(shù)得到與fd指向對象的相關參數(shù),并將他們保存于oldtio引用的結構中。保存原先配置 if(tcgetattr(fd,&oldtio)!=0) Perror(“error ”); Return -1; 7串口程序設計3、設置參數(shù)的實現(xiàn)示例:設置波特率輸入波特率設置:cfsetispeed輸出波特率設置:cfsetospeed例:cfsetispeed(&new
5、tio,B19200); /*設置為19200Bps*/cfsetospeed(&newtio,B19200);9串口程序設計4、設置參數(shù)的實現(xiàn)示例:設置數(shù)據(jù)位大小 首先去掉數(shù)據(jù)位中的掩碼,在重新設置。例: newtio.c_cflag &=CSIZE; newtio.c_cflag |=CS8;10串口程序設計5、設置參數(shù)的實現(xiàn)示例:設置奇校驗位 newtio.c_iflag|=(INPCK | ISTRIP)/INPCK奇偶校驗使能;ISTRIP 除去奇偶校驗位 newtio.c_cflag |= PARODD;/奇校驗 newtio.c_cflag |= PARENB;/校驗位使能課堂練
6、習一:設置偶校驗位 newtio.c_iflag |=(INPCK | ISTRIP); newtio.c_cflag &= PARODD; newtio.c_cflag |= PARENB;11串口程序設計6、設置參數(shù)的實現(xiàn)示例: 設置停止位 下面是設置停止位為1的代碼: newtio.c_cflag &= CSTOPB; 設置最少字符和等待時間 newtio.c_ccVTIME =0; newtio.c_ccVMIN=0;12串口程序設計7、設置參數(shù)的實現(xiàn)示例: 處理要寫入的引用對象 tcflush(fd,queue_selector); queue_selector取值如下: TCIFL
7、USH:刷新收到的數(shù)據(jù)但不讀取 TCOFLUSH:刷新寫入的數(shù)據(jù)但是不傳送 TCIOFLUSH:同時刷新收到的數(shù)據(jù)但是不讀,并且刷新寫入的數(shù)據(jù)但是不傳送 例如采用第三種方法: tcflush(fd,TCIOFLUSH);13串口程序設計8、設置參數(shù)的實現(xiàn)示例: 激活配置 tcsetattr(fd,OPTION,&newtio); OPTION的選項如下: TCSANOW:改變的配置立即生效 TCSADRAIN:改變的配置在所有寫入fd的輸出結束后生效 TCSAFLUSH:改變的配置在所有寫入fd引用對象的輸出都被結束后生效,所有已接受但未讀入的輸入都在改變發(fā)生前丟棄 例如:想使改變立即生效 t
8、csetattr(fd,TCSANOW,&newtio);14串口程序設計打開串口在 Linux 下串口文件位于 /dev 下 串口一 為 /dev/ttyS0 串口二 為 /dev/ttyS1 int fd;/*以讀寫方式打開串口*/fd = open( /dev/ttyS0, O_RDWR);if (-1 = fd) /* 不能打開串口*/ perror( 提示錯誤!); 設置串口 串口的設置主要是設置 struct termios 結構體的各成員值 。16串口程序設計設置參數(shù)的實現(xiàn)示例:tcgetattr(fd,&oldtio); /*儲存當前串口設定 */*控制標志設定,含義如下: *
9、/*BAUDRATE:設定bps的速度 */*CRTSCTS:硬體流量控制 */*CS8:8n1(8位,無校驗位,1個終止位) */*CLOCAL:本地連線,沒有主機控制功能*/*CREAD:只能接收字元*/newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD;newtio.c_iflag = IGNPAR; /*忽略奇偶校驗位*/newtio.c_oflag = 0;/* Raw模式輸出*/newtio.c_lflag = 0;/*非標準型輸入,不回應*/newtio.c_ccVMIN=1; /*在讀取到1個字元前先停止*/newtio.c_ccVTIME=0;/*不使用分割字元組的計時器*/tcflush(fd, TCIFLUSH); /*清除串口緩沖區(qū)*/tcsetattr(fd,TCSANOW,&newtio);/*設置串口新參數(shù)*/ 17串口程序設計關閉串口關閉串口就是關閉文件close(fd); 19串口程序設計串口參數(shù)設定和文件操作的幾個重要函數(shù)函數(shù)名描述舉例open打開串口文件open(/dev/ttyS0,O_RDWR)tcgetattr保存當前串口設置tcgetattr(fd,&oldtio)tcsetattr設置串口參數(shù)tcsetattr(fd,TCS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年自動平滑門項目可行性研究報告
- 2025年竹纖維家居服項目可行性研究報告
- 2025至2031年中國電池專用材料行業(yè)投資前景及策略咨詢研究報告
- 2025年水管手推車項目可行性研究報告
- 2025年顯微(細胞)電泳系統(tǒng)項目可行性研究報告
- 2025至2031年中國尋像器行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國商業(yè)印刷票據(jù)表格行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國兒童多用臺行業(yè)投資前景及策略咨詢研究報告
- 2025年免維護閥控式鉛酸電池項目可行性研究報告
- 2025年U型收音機項目可行性研究報告
- 高考語文復習高中語文文言文注釋集萃
- 初中歷史 教材分析與教學策略 課件
- (完整word版)手卡模板
- GB/T 13912-2020金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術要求及試驗方法
- 統(tǒng)編教學小學語文課外閱讀《細菌世界歷險記》導讀課課件
- 幼兒剪紙-打印版
- 中小學2021年秋季開學第一課手心班會圖文精品
- 高三英語閱讀專項訓練之說明文(含答案及部分解析)
- 中國移動CHBN試題題庫大全(含答案)
- 醫(yī)學課件:介入放射學(全套課件328張)
- 2022年同等學力人員申請碩士學位日語水平統(tǒng)一考試真題
評論
0/150
提交評論