欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      嵌入式實驗2

      時間:2019-05-12 06:55:51下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《嵌入式實驗2》,但愿對你工作學(xué)習(xí)有幫助,當然你在寫寫幫文庫還可以找到更多《嵌入式實驗2》。

      第一篇:嵌入式實驗2

      南昌航空大學(xué)實驗報告

      二0一一 年 10月 16日

      課程名稱: 嵌入式系統(tǒng) 實驗名稱: 串行端口程序設(shè)計 班 級: 080611 學(xué)生姓名: 曹啟斌 學(xué)號: 08061107 指導(dǎo)教師評定: 簽名:

      一、實驗?zāi)康?了解在linux環(huán)境下串行程序設(shè)計的基本方法。掌握終端的主要屬性及設(shè)置方法,熟悉終端IO函數(shù)的使用。3 學(xué)習(xí)使用多線程來完成串口的收發(fā)處理。

      二、實驗內(nèi)容

      讀懂程序源代碼,學(xué)習(xí)終端IO函數(shù)tcgetattr(), tcsetattr(),tcflush()的使用方法,學(xué)習(xí)將多線程編程應(yīng)用到串口的接收和發(fā)送程序設(shè)計中。

      三、預(yù)備知識

      1、有C語言基礎(chǔ)。

      2、掌握在LINUX下常用編輯器的使用。

      3、掌握Makefile 的編寫和使用。

      4、掌握Linux下的程序編譯與交叉編譯過程

      四、實驗設(shè)備及工具

      硬件:UP-NETARM2410-S嵌入式實驗儀,PC機pentumn500以上, 硬盤40G以上,內(nèi)存大于128M。

      軟件:PC機操作系統(tǒng)REDHAT LINUX 9.0 +MINICOM + AMRLINUX開發(fā)環(huán)境

      五、實驗原理

      Linux 操作系統(tǒng)從一開始就對串行口提供了很好的支持,為進行串行通訊提供了大量的函數(shù),我們的實驗主要是為掌握在LINUX中進行串行通訊編程的基本方法。

      1.程序流程圖

      程序流程圖如圖2-3所示:

      圖2-3 程序流程圖

      2串口操作需要的頭文件

      #include /*標準輸入輸出定義*/ #include /*標準函數(shù)庫定義*/ #include /*linux標準函數(shù)定義*/ #include #include #include /*文件控制定義*/ #include /*PPSIX 終端控制定義*/ #include /*錯誤號定義*/ #include

      /*線程庫定義*/ 3打開串口

      在 Linux 下串口文件是位于 /dev 下,串口一為/dev/ttyS0,串口二為 /dev/ttyS1,打開串口是通過使用標準的文件打開函數(shù)操作:

      int fd;/*以讀寫方式打開串口*/ fd = open(“/dev/ttyS0”, O_RDWR);if(-1 == fd){ perror(“ 提示錯誤!”);}

      4設(shè)置串口

      最基本的設(shè)置串口包括波特率設(shè)置,效驗位和停止位設(shè)置。串口的設(shè)置主要是設(shè)置 struct termios 結(jié)構(gòu)體的各成員值。

      struct termio { unsigned short c_iflag;/* 輸入模式標志 */

      unsigned short c_oflag;/* 輸出模式標志 */

      unsigned short c_cflag;/* 控制模式標志 */

      unsigned short c_lflag;/* local mode flags */

      unsigned char c_line;/* line discipline */

      unsigned char c_cc[NCC];/* control characters */ };設(shè)置這個結(jié)構(gòu)體很復(fù)雜,可以參考man手冊或者由趙克佳、沈志宇編寫的《UNIX程序編寫教程》,我這里就只考慮常見的一些設(shè)置:

      波特率設(shè)置:

      下面是修改波特率的代碼: struct termios Opt;tcgetattr(fd, &Opt);cfsetispeed(&Opt,B19200);/*設(shè)置為19200Bps*/ cfsetospeed(&Opt,B19200);tcsetattr(fd,TCANOW,&Opt);校驗位和停止位的設(shè)置: 無效驗 8位

      Option.c_cflag &= ~PARENB;Option.c_cflag &= ~CSTOPB;Option.c_cflag &= ~CSIZE;Option.c_cflag |= ~CS8;奇效驗(Odd)7位

      Option.c_cflag |= ~PARENB;Option.c_cflag &= ~PARODD;Option.c_cflag &= ~CSTOPB;Option.c_cflag &= ~CSIZE;Option.c_cflag |= ~CS7;偶效驗(Even)7位

      Option.c_cflag &= ~PARENB;Option.c_cflag |= ~PARODD;Option.c_cflag &= ~CSTOPB;Option.c_cflag &= ~CSIZE;Option.c_cflag |= ~CS7;Space效驗 7位

      Option.c_cflag &= ~PARENB;Option.c_cflag &= ~CSTOPB;Option.c_cflag &= &~CSIZE;Option.c_cflag |= CS8;設(shè)置停止位:

      1位:

      options.c_cflag &= ~CSTOPB;2位: options.c_cflag |= CSTOPB;需要注意的是,如果不是開發(fā)終端之類的,只是串口傳輸數(shù)據(jù),而不需要串口來處理,那么使用原始模式(Raw Mode)方式來通訊,設(shè)置方式如下:

      options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);/*Input*/ options.c_oflag &= ~OPOST;/*Output*/ 5讀寫串口

      設(shè)置好串口之后,讀寫串口就很容易了,把串口當作文件讀寫就可以了。發(fā)送數(shù)據(jù):

      char buffer[1024];int Length=1024;int nByte;nByte = write(fd, buffer ,Length)讀取串口數(shù)據(jù):

      使用文件操作read函數(shù)讀取,如果設(shè)置為原始模式(Raw Mode)傳輸數(shù)據(jù),那么read函數(shù)返回的字符數(shù)是實際串口收到的字符數(shù)。

      可以使用操作文件的函數(shù)來實現(xiàn)異步讀取,如fcntl,或者select等來操作。char buff[1024];int Len=1024;int readByte = read(fd, buff, Len);6關(guān)閉串口

      關(guān)閉串口就是關(guān)閉文件。close(fd);7空MODEM通訊連接電纜

      一般進行串口調(diào)試使用空MODEM連接電纜,其接線方式如下圖2-4所示:

      圖2-4 實用RS-232C通訊連線

      六、實驗步驟

      1.2.3.4.進入expbasic