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

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

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

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

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

      嵌入式實(shí)驗(yàn)總結(jié)

      時(shí)間:2019-05-12 13:10:07下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《嵌入式實(shí)驗(yàn)總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《嵌入式實(shí)驗(yàn)總結(jié)》。

      第一篇:嵌入式實(shí)驗(yàn)總結(jié)

      如今,嵌入式系統(tǒng)已經(jīng)在眾多電氣電子產(chǎn)品上應(yīng)用,有人預(yù)測(cè)今后5年發(fā)展形勢(shì)看好。嵌入式是典型的交叉學(xué)科,電信、電子、電氣、計(jì)算機(jī)、通信等等都有涉及。

      嵌入式理論、實(shí)踐要求多、門(mén)檻高,只有理論、實(shí)踐同步才能在積累中更好的漸次掌握,這學(xué)期我們針對(duì)嵌入式入門(mén)做了一些實(shí)驗(yàn),通過(guò)自己動(dòng)手和實(shí)驗(yàn)箱、實(shí)驗(yàn)軟件打交道,對(duì)嵌入式編程形成初步了解,為今后進(jìn)一步發(fā)展打基礎(chǔ)。

      實(shí)驗(yàn)環(huán)境:

      武漢創(chuàng)維特公司JXARM9-2410開(kāi)發(fā)板、PC;

      Linux、windows操作平臺(tái);

      DNW、VMwareWorkstation應(yīng)用軟件;

      《ARM9嵌入式技術(shù)及Linux高級(jí)實(shí)踐教程》、實(shí)驗(yàn)參考資料等;

      實(shí)驗(yàn)內(nèi)容及目標(biāo):

      閱讀樣例程序,進(jìn)行:

      1.熟悉JXARM9-2410開(kāi)發(fā)板、相關(guān)應(yīng)用軟件的使用,能成功運(yùn)行示例實(shí)驗(yàn)程序(demo-led);

      2.使用VMware,修改demo-led源程序,使開(kāi)發(fā)板上數(shù)碼管按照demo-led顯示方式顯示;

      3.使用VMware、DNW,修改相關(guān)源程序,實(shí)現(xiàn)開(kāi)發(fā)板鍵盤(pán)輸入的字符在DNW中顯示;

      4.使用VMware、DNW,修改相關(guān)源程序,實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)動(dòng)狀態(tài)的控制;

      觀看教學(xué)視頻,進(jìn)行交叉編譯:

      1.加載linux內(nèi)核;

      2.配置、編譯linux內(nèi)核;

      3.Windows、linux跨平臺(tái)文件共享;

      4.編譯、運(yùn)行l(wèi)inux程序(helloworld)

      5.Linux下編譯數(shù)碼管顯示驅(qū)動(dòng)程序;

      6.Linux下編譯攝像頭、GPRS驅(qū)動(dòng)程序;

      學(xué)習(xí)嵌入式是一個(gè)漫長(zhǎng)的過(guò)程,學(xué)好它還是需要一番的功夫。通過(guò)嵌入式實(shí)驗(yàn)由淺入深的動(dòng)手實(shí)踐,我漸漸對(duì)嵌入式有了具體概念,也逐漸對(duì)其產(chǎn)生了興致和好奇心。

      對(duì)于初學(xué)者,還有一點(diǎn)小建議,不要好高騖遠(yuǎn),要腳踏實(shí)地.

      第二篇:嵌入式實(shí)驗(yàn)二

      1.實(shí)驗(yàn)二:利用中斷實(shí)現(xiàn) OLED 動(dòng)態(tài)顯示實(shí)驗(yàn)

      1.1 實(shí)驗(yàn)名稱(chēng)

      1.2 實(shí)驗(yàn)?zāi)康?/p>

      (1)深入學(xué)習(xí)、理解、掌握 OLED 字符顯示方法

      (2)深入學(xué)習(xí)、理解、掌握 OLED 圖形顯示方法(3)學(xué)習(xí)、理解、掌握中斷使用方法

      1.3 實(shí)驗(yàn)過(guò)程與分析

      1.3.1 回答實(shí)驗(yàn)報(bào)告中的實(shí)驗(yàn)問(wèn)題

      (1)ISR是什么?簡(jiǎn)述一下中斷的作用和使用方法

      答:ISR是中斷服務(wù)程序。作用是通過(guò)處理器執(zhí)行事先編好的某個(gè)特定的程序。使用方法就是在main中寫(xiě)一個(gè)中斷程序,然后在startup.s中進(jìn)行注冊(cè)。

      (2)嵌入式系統(tǒng)中有哪些應(yīng)用有定時(shí)性循環(huán)處理的要求?舉幾個(gè)例子

      答:在各種網(wǎng)絡(luò)的應(yīng)用中,設(shè)計(jì)的一些部件,如計(jì)數(shù)器,時(shí)鐘等。

      (3)定時(shí)時(shí)間間隔如何修改?

      (4)選作內(nèi)容5-8的編程思路是什么?若做的話應(yīng)該怎樣實(shí)現(xiàn)? 答:編程思路:先畫(huà)直線和豎線,組成一個(gè)正方形,將各個(gè)參數(shù)填寫(xiě)到函數(shù)答:通過(guò)改變SysTickPeriodSet(SysCtlClockGet()/100)后面的100這個(gè)參數(shù)。

      RIT128x96x4ImageDraw(buf,,);

      第6個(gè)選作:判斷畫(huà)的原點(diǎn)x,原點(diǎn)y,和畫(huà)原點(diǎn)x+的長(zhǎng),畫(huà)原點(diǎn)y+畫(huà)寬的值要在0-128和0-96。

      第7個(gè)選作:把RIT128x96x4StringDraw(“hello”,,);就是把畫(huà)的灰度定義為一個(gè)變量x。最后就會(huì)出現(xiàn)由不同的亮度而形成的波浪。

      第8個(gè)就是利用隨機(jī)函數(shù)產(chǎn)生畫(huà)的原點(diǎn),隨機(jī)的在屏幕上進(jìn)行顯示。

      (5)拖影現(xiàn)象如何解決?計(jì)數(shù)值顯示為什么沒(méi)有拖影? 答:在程序結(jié)束后執(zhí)行清屏語(yǔ)句:計(jì)數(shù)顯示是每次重新賦值,所以不會(huì)出現(xiàn)拖影。

      1.3.2 實(shí)驗(yàn)中遇到的問(wèn)題及解決方法

      (1)字符和下方橫線,從左至右移動(dòng),無(wú)法同時(shí)到達(dá)

      通過(guò)最大寬度128除以閥值,調(diào)整了字符和橫線的速度,解決(2)附加字符循環(huán)移動(dòng),移動(dòng)到一半,不見(jiàn)了

      查看函數(shù)排錯(cuò),得以解決

      (3)基本問(wèn)題做完時(shí),字符顯示完整,添加附加任務(wù)后,字符顯示不全

      未解決...1.4實(shí)驗(yàn)結(jié)果總結(jié) 實(shí)驗(yàn)結(jié)果(附照片)

      總結(jié)(自己的收獲)1.5心得體會(huì)

      #include #include #include “rit128x96x4.h” int Event = 0;unsigned char buf1[] = {

      0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };unsigned char buf2[] = {

      0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00 };unsigned char buf3[] = {

      0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf4[] = {

      0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf5[] = {

      0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff };unsigned char buf6[] = {

      0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf7[] = {

      0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };unsigned char buf8[] = {

      0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff };

      unsigned char r1[] = {

      0xff,0xff };unsigned char r2[] = {

      0xf0,0x0f };unsigned char r3[] = {

      0xf0,0x0f };unsigned char r4[] = {

      0xff,0xff };

      unsigned char c1[] = {

      0x0f,0xf0 };unsigned char c2[] = {

      0xf0,0x0f };unsigned char c3[] = {

      0xf0,0x0f };unsigned char c4[] = {

      0x0f,0xf0 };void SysTick_Handler(void){ Event = 1;} void printX(){ }

      int main(){

      int count = 0,i,Light=0,x=0,z=0,y=0,zz=0,yy=0,c=0,cc=0,a=0,aa=0;unsigned char buf[5];

      //存(數(shù)字)字符串

      unsigned char name[20] = “";unsigned char number[20] = ”“;SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN SYSCTL_XTAL_8MHZ);RIT128x96x4Init(1000000);RIT128x96x4Clear();

      SysTickPeriodSet(SysCtlClockGet()/ 10);

      //調(diào)頻率

      SysTickEnable();SysTickIntEnable();while(1){

      if(Event){

      RIT128x96x4Clear();

      Event = 0;

      sprintf(buf,”%3i“,count);

      //通過(guò)sprintf將數(shù)字轉(zhuǎn)換為字符

      | if(Light >= 15)

      {

      Light=0;

      } else {

      Light++;} RIT128x96x4StringDraw(name, 50, 55, 15-Light);RIT128x96x4StringDraw(number, 50, 65, Light);sprintf(buf,”%d",count);;RIT128x96x4StringDraw(buf, 50, 75, 12);

      count++;if(count>=200){

      count=0;} RIT128x96x4ImageDraw(buf2,(int)(x*0.50), 5, 20, 1);RIT128x96x4ImageDraw(buf3,(int)(x*0.50), 7, 20, 1);RIT128x96x4ImageDraw(buf4,(int)(x*0.50), 9, 20, 1);RIT128x96x4ImageDraw(buf5,(int)(x*0.50), 11,20, 1);RIT128x96x4ImageDraw(buf6,(int)(x*0.50), 13, 20, 1);RIT128x96x4ImageDraw(buf7,(int)(x*0.50), 15, 20, 1);RIT128x96x4ImageDraw(buf8,(int)(x*0.50), 17, 20, 1);RIT128x96x4ImageDraw(buf1, 0, 20,(int)(x*0.60), 1);RIT128x96x4ImageDraw(c1,(int)(60+c*1.20),(int)(5+a*0.85), 4, 1);RIT128x96x4ImageDraw(c2,(int)(60+c*1.20),(int)(7+a*0.85), 4, 1);RIT128x96x4ImageDraw(c3,(int)(60+c*1.20),(int)(9+a*0.85), 4, 1);RIT128x96x4ImageDraw(c4,(int)(60+c*1.20),(int)(11+a*0.85), 4, 1);RIT128x96x4ImageDraw(r1,(int)(z*0.30),(int)(50+y*0.20), 4, 1);RIT128x96x4ImageDraw(r2,(int)(z*0.30),(int)(52+y*0.20), 4, 1);RIT128x96x4ImageDraw(r3,(int)(z*0.30),(int)(54+y*0.20), 4, 1);RIT128x96x4ImageDraw(r4,(int)(z*0.30),(int)(56+y*0.20), 4, 1);if(x<=200&&x>=0)

      //直線 {

      x++;} if(x>=200){

      x=0;} if(c<=50&&c>=-50)

      //圓形循環(huán) {

      if(cc==0)c++;

      if(cc==1)c--;} if(c>=50){

      cc=1;} if(c<=-50){

      cc=0;} if(a<=100&&a>=0){

      if(aa==0)a++;

      if(aa==1)a--;} if(a>=100){

      aa=1;} if(x<=0){

      aa=0;} if(y<=200&&y>=0){

      if(yy==0)y++;

      if(yy==1)y--;} if(y>=200){

      yy=1;} if(y<=-200){

      yy=0;} if(z<=400&&z>=0){

      if(zz==0)z++;

      if(zz==1)z--;} if(z>=400){

      zz=1;} if(z<=0){

      //矩形反彈

      }

      zz=0;

      } } } return 0;

      第三篇:嵌入式系統(tǒng)實(shí)驗(yàn)

      南京信息工程大學(xué) 實(shí)驗(yàn)(實(shí)習(xí))報(bào)告

      實(shí)驗(yàn)(實(shí)習(xí))名稱(chēng)

      電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn) 實(shí)驗(yàn)(實(shí)習(xí))日期

      2016.5 得分

      指導(dǎo)教師 謝勝東

      學(xué)院 計(jì)算機(jī)與軟件 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 年級(jí)

      2013 班次 3 姓名

      葉正舟 學(xué)號(hào)

      20131308072 實(shí)驗(yàn)名稱(chēng)

      電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康?/p>

      (1)熟悉ARM本身自帶的六路即三對(duì)PWM,掌握相應(yīng)寄存器的配置

      (2)編程實(shí)現(xiàn) ARM系統(tǒng)的PWM 輸出和I/O 輸出,前者用于控制直流電機(jī),后者用于控制步進(jìn)電機(jī)。

      (3)了解直流電機(jī)和步進(jìn)電機(jī)的工作原理,學(xué)會(huì)用軟件的方法實(shí)現(xiàn)步進(jìn)電機(jī)的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。

      (4)掌握帶有PWM 和I/O 的CPU 編程實(shí)現(xiàn)其相應(yīng)功能的主要方法。實(shí)驗(yàn)環(huán)境

      (1)ADS1.2開(kāi)發(fā)環(huán)境(2)PC(3)串口線 實(shí)驗(yàn)內(nèi)容及要求

      學(xué)習(xí)步進(jìn)電機(jī)和直流電機(jī)的工作原理,了解實(shí)現(xiàn)兩個(gè)電機(jī)轉(zhuǎn)動(dòng)對(duì)于系統(tǒng)的軟件和硬件要求。學(xué)習(xí)ARM知識(shí),掌握PWM 的生成方法,同時(shí)也要掌握I/O 的控制方法。

      (1)編程實(shí)現(xiàn)ARM芯片的一對(duì)PWM 輸出用于控制直流電機(jī)的轉(zhuǎn)動(dòng),通過(guò)A/D 旋鈕控制其正反轉(zhuǎn)及轉(zhuǎn)速

      (2)編程實(shí)現(xiàn)ARM的四路I/O 通道實(shí)現(xiàn)環(huán)形脈沖分配用于控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),通過(guò)A/D 旋鈕轉(zhuǎn)角控制步進(jìn)電機(jī)的轉(zhuǎn)角。

      (3)通過(guò)超級(jí)終端來(lái)控制直流電機(jī)與步進(jìn)電機(jī)的切換。實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟

      (1)新建工程,將“電機(jī)轉(zhuǎn)動(dòng)控制實(shí)驗(yàn)”中的文件添加到工程(2)編寫(xiě)直流電機(jī)初始化數(shù)(MotorCtrl.c)(3)控制直流電機(jī)與步進(jìn)電機(jī) 實(shí)驗(yàn)過(guò)程與分析

      (1)通過(guò)把從串口中得到控制信息的代碼修改成從zlg7289芯片中讀取小鍵盤(pán)信息,從而利用試驗(yàn)臺(tái)的小鍵盤(pán)來(lái)控制步進(jìn)電機(jī)和直流電機(jī)的切換

      (2)A/D轉(zhuǎn)換可以把電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)來(lái)控制電機(jī)的轉(zhuǎn)速。for(;;)

      { loop:

      //if((rUTRSTAT0 & 0x1))//有輸入,則返回

      if(rPDATG&ZLG7289_KEY)//17鍵小鍵盤(pán)控制電機(jī)

      {

      *Revdata=RdURXH0();

      goto begin;

      }

      Delay(10);ADData=GetADresult(0);

      if(abs(lastADData-ADData)<20)

      goto loop;Delay(10);count=-(ADData-lastADData)*3;

      //(ADData-lastADData)*270/1024為ad旋鈕轉(zhuǎn)過(guò)的角度,360/512為步距角,//由于接了1/8減速器,兩者之商再乘以8為步進(jìn)電機(jī)相應(yīng)轉(zhuǎn)過(guò)的角度

      if(count>=0)

      {//轉(zhuǎn)角大于零

      for(j=0;j

      {

      for(i=0;i<=7;i++)

      {

      SETEXIOBITMASK(stepdata[i], 0xf0);

      Delay(200);

      }

      }

      }

      lastADData=ADData;

      } } 實(shí)驗(yàn)結(jié)果總結(jié)

      利用A/D轉(zhuǎn)換器實(shí)現(xiàn)了對(duì)直流電機(jī)和步進(jìn)電機(jī)的控制,利用實(shí)驗(yàn)設(shè)備上自帶的小鍵盤(pán)實(shí)現(xiàn)了A/D轉(zhuǎn)換器對(duì)兩個(gè)電機(jī)控制的切換。心得體會(huì)

      通過(guò)本次實(shí)驗(yàn),熟悉了ARM自帶的六路(三對(duì))PWM,并對(duì)直流電機(jī)和步進(jìn)電機(jī)的工作原理有了進(jìn)一步的了解。

      第四篇:嵌入式實(shí)驗(yàn)2

      南昌航空大學(xué)實(shí)驗(yàn)報(bào)告

      二0一一 年 10月 16日

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

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

      二、實(shí)驗(yàn)內(nèi)容

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

      三、預(yù)備知識(shí)

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

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

      3、掌握Makefile 的編寫(xiě)和使用。

      4、掌握Linux下的程序編譯與交叉編譯過(guò)程

      四、實(shí)驗(yàn)設(shè)備及工具

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

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

      五、實(shí)驗(yàn)原理

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

      1.程序流程圖

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

      圖2-3 程序流程圖

      2串口操作需要的頭文件

      #include /*標(biāo)準(zhǔn)輸入輸出定義*/ #include /*標(biāo)準(zhǔn)函數(shù)庫(kù)定義*/ #include /*linux標(biāo)準(zhǔn)函數(shù)定義*/ #include #include #include /*文件控制定義*/ #include /*PPSIX 終端控制定義*/ #include /*錯(cuò)誤號(hào)定義*/ #include

      /*線程庫(kù)定義*/ 3打開(kāi)串口

      在 Linux 下串口文件是位于 /dev 下,串口一為/dev/ttyS0,串口二為 /dev/ttyS1,打開(kāi)串口是通過(guò)使用標(biāo)準(zhǔn)的文件打開(kāi)函數(shù)操作:

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

      4設(shè)置串口

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

      struct termio { unsigned short c_iflag;/* 輸入模式標(biāo)志 */

      unsigned short c_oflag;/* 輸出模式標(biāo)志 */

      unsigned short c_cflag;/* 控制模式標(biāo)志 */

      unsigned short c_lflag;/* local mode flags */

      unsigned char c_line;/* line discipline */

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

      波特率設(shè)置:

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

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

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

      Option.c_cflag &= ~PARENB;Option.c_cflag |= ~PARODD;Option.c_cflag &= ~CSTOPB;Option.c_cflag &= ~CSIZE;Option.c_cflag |= ~CS7;Space效驗(yàn) 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;需要注意的是,如果不是開(kāi)發(fā)終端之類(lèi)的,只是串口傳輸數(shù)據(jù),而不需要串口來(lái)處理,那么使用原始模式(Raw Mode)方式來(lái)通訊,設(shè)置方式如下:

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

      設(shè)置好串口之后,讀寫(xiě)串口就很容易了,把串口當(dāng)作文件讀寫(xiě)就可以了。發(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ù)。

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

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

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

      圖2-4 實(shí)用RS-232C通訊連線

      六、實(shí)驗(yàn)步驟

      1.2.3.4.進(jìn)入expbasic