




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1嵌入式系統(tǒng)第8講ARM-Linux串口通信程序設(shè)計編輯ppt串行通信方式每次傳送一個bit的通信方式,字符被分成一串bits來傳輸。串行數(shù)據(jù)的速度通常用每秒傳輸?shù)淖止?jié)數(shù)bits-per-second(bps)或者波特率(baud)表示。編輯ppt串口設(shè)備計算機(jī)開展歷史中,串口廣泛用于連接外設(shè);雖然速度慢,卻現(xiàn)在仍然廣泛使用某些計算機(jī)使用稱為UART〔UniversalAsynchronousReceiver/Transmitter,通用異步接收/發(fā)送裝置〕的集成電路來作為串口設(shè)備。它完成計算機(jī)內(nèi)并行數(shù)據(jù)和設(shè)備端口串行數(shù)據(jù)的轉(zhuǎn)換〔輸入輸出FIFO〕;并且可以自動地處理數(shù)據(jù)的時序。而某些低端設(shè)備那么會讓CPU直接來傳送數(shù)據(jù)。編輯pptRS-232RS-232是EIA(ElectronicIndustriesAssociation)定義的串行通信的電器接口.分為DB-9和DB-25兩種接口。DB-9定義編輯pptRS-232DB-25定義編輯ppt串行異步通信格式異步模式:空閑時串口一直是1;當(dāng)有數(shù)據(jù)時,總是以一個start位開始,start位是0;串口隨時可進(jìn)行傳輸,不需時鐘也不用定義同步幀頭幀尾,故稱異步通信在start〔0〕之后,字符編碼可以是7bits或者8bits之后可能有parity奇偶校驗位和stop停止位〔1,1.5或者2bits〕所以通常用8-N-1、7-E-1等方式來描述編輯ppt流控兩個串口設(shè)備之間,可能因為鏈路差異等原因,需要進(jìn)行數(shù)據(jù)流的協(xié)調(diào),一般兩種方法:軟件流控:以XON〔八進(jìn)制021〕標(biāo)示開始,以XOFF〔八進(jìn)制023〕標(biāo)示結(jié)束硬件流控:RTS〔發(fā)送方準(zhǔn)備好發(fā)出ReadytoSend)和CTS〔接收方準(zhǔn)備好發(fā)出CleartoSent〕握手信號編輯pptLinux下訪問串口設(shè)備文件Linux下設(shè)備是以設(shè)備文件方式來訪問的,串口也是如此。在linux系統(tǒng)下面,每一個串口設(shè)備都有設(shè)備文件與其關(guān)聯(lián),設(shè)備文件位于系統(tǒng)的/dev目錄下面。如linux下的/ttyS0,/ttyS1分別表示的是串口1和串口2。編輯ppt頭文件#include<stdio.h>/*標(biāo)準(zhǔn)輸入輸出定義*/#include<stdlib.h>/*標(biāo)準(zhǔn)函數(shù)庫定義*/#include<unistd.h>/*Unix標(biāo)準(zhǔn)函數(shù)定義*/#include<sys/types.h>/*數(shù)據(jù)類型定義*/#include<sys/stat.h>/*文件屬性定義*/#include<fcntl.h>/*文件控制定義*/#include<termios.h>/*POSIX終端控制定義*/#include<errno.h>/*錯誤號定義*/#include<string.h>/*字符串功能函數(shù)*/編輯ppt串口程序相關(guān)函數(shù)串口參數(shù)設(shè)定和文件操作的幾個重要函數(shù)編輯ppt翻開串口intopen〔“DE_name〞,intopen_Status〕參數(shù)說明:〔1〕.DE_name:要翻開的設(shè)備文件名比方要翻開串口1,即為/dev/ttyS0?!?〕.open_Status:文件翻開方式,可采用下面的文件翻開模式;函數(shù)返回值:成功返回文件描述符,如果失敗返回-1編輯ppt編輯pptintfd;/*文件描述符*/fd=open("/dev/ttyS0",O_RDWR|0_NOCTTY);/*以讀寫方式翻開設(shè)備*/if(fd==-1)perror("openttyS0/n!");/*翻開失敗時的錯誤提示*/編輯pptclose(fd);參數(shù)說明:fd:文件描述符函數(shù)返回值:成功返回0,失敗返回-1。關(guān)閉串口編輯ppt串口配置與終端標(biāo)準(zhǔn)結(jié)構(gòu)體配置串口主要通過tcgetattr()和tcsetattr()這兩個函數(shù)。他們均使用一個結(jié)構(gòu)體,該結(jié)構(gòu)體對終端的輸入、輸出、硬件特性、控制協(xié)議等方面進(jìn)行了定義,具體定義形式如下:structtermios{
tcflag_t c_iflag;輸入?yún)?shù) tcflag_t c_oflag;輸出參數(shù) tcflag_t c_cflag;控制參數(shù) tcflag_t c_lflag;本地模式 cc_t c_line;行控制 cc_t c_cc[NCCS];控制字符};編輯ppt終端標(biāo)準(zhǔn)結(jié)構(gòu)體說明其中參數(shù):c_iflag輸入?yún)?shù)設(shè)置;c_oflag輸出參數(shù)設(shè)置;c_cflag設(shè)置決定終端硬件特性的控制標(biāo)志,包括數(shù)據(jù)位寬度、停止位、奇偶校驗位等c_lflag存放本地模式(與用戶交互〕設(shè)置c_cc用來控制數(shù)據(jù)發(fā)送到調(diào)用程序的方式編輯ppt輸入選項c_iflag注:NL=newline編輯ppt輸出選項c_oflag編輯ppt控制選項c_cflag編輯pptc_lflag編輯pptc_cc編輯pptCflag設(shè)置舉例Noparity(8N1) options.c_cflag&=~PARENB;//關(guān)閉校驗 options.c_cflag&=~CSTOPB;//設(shè)置停止位 options.c_cflag&=~CSIZE;//設(shè)置數(shù)據(jù)位 options.c_cflag|=CS8;Evenparity(7E1) options.c_cflag|=PARENB;//開啟校驗 options.c_cflag&=~PARODD;//偶校驗?zāi)J?options.c_cflag&=~CSTOPB; options.c_cflag&=~CSIZE; options.c_cflag|=CS7;編輯ppt串口設(shè)置函數(shù)編輯ppttcsetattrinttcsetattr〔intfd,intopt_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。編輯ppttcgetattrinttcgetattr〔intfd,*ptr〕該函數(shù)用來獲取終端控制屬性,它把串口的默認(rèn)設(shè)置賦給了termios數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu),其參數(shù)說明如下:fd:待操作的文件描述符*ptr:指向termios結(jié)構(gòu)的指針函數(shù)返回值:成功返回0,失敗返回-1。編輯ppttcflushinttcflush〔intfd,intquene〕參數(shù)說明:quene取值及含義:*TCIFLUSH去除輸入隊列*TCOFLUSH去除輸出隊列*TCIOFLUSH去除輸入、輸出隊列舉例:tcflush〔fd,TCIOFLUSH〕;另加的說明:在翻開串口后,用戶其實已經(jīng)可以開始從串口讀取數(shù)據(jù)了,但如果用戶沒有讀取,數(shù)據(jù)將被將保存在緩沖區(qū)里。如果用戶不想要開始的一段數(shù)據(jù),或者發(fā)現(xiàn)緩沖區(qū)數(shù)據(jù)有誤,可以使用這個函數(shù)將緩沖區(qū)清空。應(yīng)用舉例:tcflush(fd,TCIOFLUSH);sleep(2);read_len=read(fd,buff,10);編輯ppt終端速度控制cfgetispeed,cfgetospeed,cfsetispeed,cfsetospeed獲取和設(shè)置輸入、輸出速度函數(shù):intcfgetispeed(structtermios*tp);intcfsetispeed(structtermios*tp,speed_tspeed);intcfgetospeed(structtermios*tp);
intcfsetospeed(structtermios*tp,speed_tspeed);編輯ppt速度定義波特率的設(shè)置定義在<asm/termbits.h>例如B4800------
4800B9600------
9600B19200-----
19200B38400------
38400B57600------
57600B115200-----
115200編輯ppt速度設(shè)置舉例#include<stdio.h>//頭文件定義........structtermiosopt;/*定義指向termios結(jié)構(gòu)類型的指針opt*/
cfsetispeed(&opt,B9600);/*指定輸入波特率,9600bps*/cfsetospeed(&opt,B9600);/*指定輸出波特率,9600bps*/編輯ppt讀操作串口讀操作read()〔接收端〕用open函數(shù)翻開設(shè)備文件,函數(shù)返回一個文件描述符(filedescriptors,fd),通過文件描述符來訪問文件。函數(shù)原型如下:intread(intfd,*buffer,length);參數(shù)說明:〔1〕.intfd:文件描述符〔2〕.*buffer:數(shù)據(jù)緩沖區(qū)〔3〕.length:要讀取的字節(jié)數(shù)函數(shù)返回值:讀操作成功讀取返回讀取的字節(jié)數(shù),失敗那么返回-1。編輯ppt串口寫操作write()〔發(fā)送端〕函數(shù)原型如下:write(intfd,*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。寫操作編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)與智能交通系統(tǒng)的結(jié)合
- 《數(shù)據(jù)網(wǎng)組建與維護(hù)》課件-3.1任務(wù)1 靜態(tài)路由實現(xiàn)網(wǎng)絡(luò)互聯(lián)
- 胎心監(jiān)護(hù)臨床意義
- 2025年征信數(shù)據(jù)挖掘技術(shù)與應(yīng)用題庫:征信數(shù)據(jù)分析考試
- 2025年小學(xué)教師資格考試《綜合素質(zhì)》教育案例反思策略與試題試卷
- 2025年安全生產(chǎn)考試題庫:水上交通事故案例分析試題卷
- 2025年消防安全知識培訓(xùn)考試題庫:消防設(shè)施設(shè)備選型與消防設(shè)施驗收流程標(biāo)準(zhǔn)試題
- 2025年茶藝師職業(yè)技能競賽茶葉茶藝表演技巧與創(chuàng)新試題試卷
- 2025年SAT語法知識測試卷:語法知識點鞏固與測試試題
- 安全游泳講課
- 高等教育數(shù)字化轉(zhuǎn)型心得體會
- 2025年安徽財貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 2025年安徽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 典范英語6-12玉米片硬幣英文原文及重點短語和句子演示教學(xué)
- 日式保潔培訓(xùn)課件大全
- 2025年廣東省深圳市高考語文一模試卷
- 2025年陜西工商職業(yè)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- 2025年福建省高職單招職業(yè)適應(yīng)性測試題庫及答案解析
- 自媒體運營實戰(zhàn)教程(抖音版) 課件 第7章 短視頻運營-自媒體中級
- 2025時事政治必考題庫含參考答案
- 保潔管理安全培訓(xùn)課件
評論
0/150
提交評論