




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1嵌入式系統(tǒng)嵌入式系統(tǒng)第第8講講 ARM-Linux 串口通信程序設(shè)計串口通信程序設(shè)計串口程序相關(guān)函數(shù)串口程序相關(guān)函數(shù)串口參數(shù)設(shè)定和文件操作的幾個重要函數(shù)函數(shù)名描述舉例open打開串口文件open(/dev/ttyS0,O_RDWR)tcgetattr保存當前串口設(shè)置tcgetattr(fd,&oldtio)tcsetattr設(shè)置串口參數(shù)tcsetattr(fd,TCSANOW,&newtio)read從串口中讀數(shù)據(jù)read(fd, buff, Len)tcflush清除串口緩沖區(qū)tcflush(fd, TCIFLUSH);write向串口中寫數(shù)據(jù)write(fd, buffe
2、r ,Length)close關(guān)閉串口文件close(fd);參數(shù)說明close(fd); 控制選項控制選項串口設(shè)置函數(shù)串口設(shè)置函數(shù)tcsetattrtcsetattrint tcsetattr(int fd,int opt_DE,*ptr)該函數(shù)用來設(shè)置終端控制屬性,其參數(shù)說明如下: fd:待操作的文件描述符 opt_DE:選項值,有三個選項以供選擇: TCSANOW: 不等數(shù)據(jù)傳輸完畢就立即改變屬性 TCSADRAIN:等待所有數(shù)據(jù)傳輸結(jié)束才改變屬性 TCSAFLUSH:清空輸入輸出緩沖區(qū)才改變屬性 *ptr:指向termios結(jié)構(gòu)的指針函數(shù)返回值:成功返回0,失敗返回1。tcgetatt
3、rtcgetattrint tcgetattr(int fd,*ptr)該函數(shù)用來獲取終端控制屬性,它把串口的默認設(shè)置賦給了termios數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu),其參數(shù)說明如下: fd:待操作的文件描述符 *ptr:指向termios結(jié)構(gòu)的指針函數(shù)返回值:成功返回0,失敗返回1。tcflushtcflushint tcflush(int fd,int quene)參數(shù)說明:quene取值及含義: *TCIFLUSH 清除輸入隊列 *TCOFLUSH 清除輸出隊列 *TCIOFLUSH 清除輸入、輸出隊列舉例:tcflush(fd,TCIOFLUSH);另加的說明:在打開串口后,用戶其實已經(jīng)可以開始從串口
4、讀取數(shù)據(jù)了,但如果用戶沒有讀取,數(shù)據(jù)將被將保存在緩沖區(qū)里。如果用戶不想要開始的一段數(shù)據(jù),或者發(fā)現(xiàn)緩沖區(qū)數(shù)據(jù)有誤,可以使用這個函數(shù)將緩沖區(qū)清空。應用舉例:tcflush(fd, TCIOFLUSH); sleep(2); read_len = read(fd, buff, 10);讀操作讀操作串口讀操作read()(接收端)用open函數(shù)打開設(shè)備文件,函數(shù)返回一個文件描述符(file descriptors,fd),通過文件描述符來訪問文件。函數(shù)原型如下:int read(int fd, *buffer,length);參數(shù)說明:(1).int fd:文件描述符(2).*buffer:數(shù)據(jù)緩沖區(qū)(3).length:要讀取的字節(jié)數(shù)函數(shù)返回值:讀操作成功讀取返回讀取的字節(jié)數(shù),失敗則返回-1。串口寫操作write()(發(fā)送端)函數(shù)原型如下:write(int fd, *buffer,length);參數(shù)說明:(1).fd:文件描述符(2).*buffer:存儲寫入數(shù)據(jù)的數(shù)據(jù)緩沖區(qū)(3).length:寫入緩沖去的數(shù)據(jù)字節(jié)數(shù)函數(shù)返回值:成功返回寫入數(shù)據(jù)的字節(jié)數(shù),該值通常等于length,如果寫入失敗返回-1。寫操作寫操作發(fā)送數(shù)據(jù) char buffer1024; int Length; int nByte; nByte = write (fd , buffer ,Length) 讀取串
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 包車居間服務(wù)合同范本
- 鄉(xiāng)村園林出售合同范本
- 別墅大門購買合同范本
- 醫(yī)療旅行合同范本
- 倉庫分租協(xié)議合同范例
- 分包非標工程合同范本
- 勞動配送合同范本
- 上牌購車合同范本
- 公寓欄桿維修合同范本
- 農(nóng)墾鋪面轉(zhuǎn)讓合同范本
- 2024年12月重慶大學醫(yī)院公開招聘醫(yī)生崗位2人(有編制)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 主題班會:新學期 新起點 新期待
- 披薩制作流程
- 2024 河北公務(wù)員考試(筆試、省直、A類、C類)4套真題及答案
- 廈門2025年福建廈門市公安文職人員服務(wù)中心招聘17人筆試歷年參考題庫附帶答案詳解
- 2025年高三歷史教學工作計劃
- 《職業(yè)性肌肉骨骼疾患的工效學預防指南 》
- 不同產(chǎn)地筠連紅茶風味化學成分差異分析
- DB50 577-2015 汽車整車制造表面涂裝大氣污染物排放標準
- 生態(tài)安全課件
- 大學英語(西安歐亞學院)知到智慧樹章節(jié)測試課后答案2024年秋西安歐亞學院
評論
0/150
提交評論