ARM的串行口實驗_第1頁
ARM的串行口實驗_第2頁
ARM的串行口實驗_第3頁
ARM的串行口實驗_第4頁
ARM的串行口實驗_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、課程名稱:嵌入式技術(shù)開課機(jī)房: 11 號機(jī)房2012 年 4 月 1 日星期二 8: 10 11:35專業(yè)班級通信09( 班學(xué)號Xb09680204姓 名江立坤實驗項目名稱實驗 3ARM的串行 口實驗指導(dǎo)教師陳瑋、實驗任務(wù)與實驗?zāi)康?. 了解 UART 的基本知識實驗?zāi)康?. 掌握基于群星系列 CM3程序庫的 UART 配置、 數(shù)據(jù)收發(fā)編程3. 學(xué)會串口調(diào)試助手或超級終端的使用任務(wù)一:使用 Stellaris 驅(qū)動庫函數(shù),編寫可以接收 及發(fā)送字符串的基于 EASY ARM 8962 開發(fā)板的 UART 驅(qū)動程序?qū)嶒炄蝿?wù)任務(wù)二:在 Microsoft Visual Studio 開發(fā)環(huán)境下,使

2、用 C#編寫一桌面程序,要求可以通過串口發(fā)送指 令,使用其打開 LED3LED6 。命令協(xié)議可以自己 定義。、報告內(nèi)容任務(wù)一#include uartGetPut.h#include systemInit.h#include#include#include#define PART_LM3S8962#include/ 定義接收緩沖區(qū)#define MAX_SIZE 40 / 緩沖區(qū)最大限制長度char RxBuf1 + MAX_SIZE; / 接收緩沖區(qū)int BufP = 0;/ 緩沖區(qū)位置變量tBoolean RxEndFlag =false ; / 接收結(jié)束標(biāo)志/ UART2 中斷服務(wù)函數(shù)

3、void UART0_ISR ( void char c;unsigned long ulStatus;ulStatus = UARTIntStatus(UART0_BASE,true ; / 讀取當(dāng)前中斷狀態(tài)UARTIntClear(UART0_BASE, ulStatus; / 清除中斷狀態(tài)if (ulStatus & UART_INT_RX | (ulStatus & UART_INT_RT /若是接收中斷或者 / 接收超時中斷for (; if (!UARTCharsAvail(UART0_BASEbreak ; / 若接收 FIFO 里無字符則跳出c = UARTCharGetNon

4、Blocking(UART0_BASE; /從接收 FIFO 里讀取字符if (c = r UARTCharPut(UART2_BASE, r ; / 回顯回車換行UARTCharPut(UART2_BASE, nRxEndFlag = true ; / 接收結(jié)束標(biāo)志置位break ;if (isprint(c / 若是可打印字符if (BufP = 2 (包括末尾 0 ,建議用 sizeof ( 來獲取)/ 返回:接收到的有效字符數(shù)目int uartGets (char *s, int size char c;int n = 0;*s = 0 ;if (size 0 *(-s =0 ;n-;

5、if (c = r / 遇回車 結(jié)束break ;if (n space space space其中: space表示空格,亦可以其他字符替代,如 ,(逗號)、 ;(分號)之類例如, LED 3 04LEDS 0CommandBUZZ 1設(shè)備類型LM75 21 09DeviceNoLED: 只能為 36設(shè)備號BUZZ: 只能為 1LM75:只能為RD/WR10 讀讀寫方向1寫PC-ARMspan:1 0 關(guān)閉DeviceValueARM-PC :1N 1 打開p設(shè)備值X溫度值長度(字符個數(shù)) 可選值列表字段名稱2. 協(xié)議實現(xiàn)桌面程序Device.csusing System;using Sys

6、tem.Collections.Generic;using System.Text;using System.IO.Ports;namespace WindowsFormsApplication1public class Device#region Feilds Defintion/ 屬性/public LM8962DeviceType DeviceType get; set; Several terrorists have claimed to be responsible for the blast 幾個恐怖主義者已經(jīng)聲稱對這起爆炸負(fù)責(zé)。其同義詞為 blow up關(guān)于爆炸還有一個單詞 ex

7、plode=ex( out)+ p + lode(礦脈)那么這幾個爆炸如何區(qū)別呢,我們舉個簡單的句子:The hijackers threaten to blast/blow up the plane, butthe bomb failed to explode. 劫機(jī)者威脅要炸掉飛機(jī),但是炸彈沒有引爆。blast 與 blow up 是同義詞,以人為主語,而 explode 是以炸彈為主語。還有一個小型的爆炸, burst“爆裂”,例: One of my bike tyres burst. 我自行車的一個胎爆了。 Even another bite will make me burst.

8、再吃一口我就撐死了。catastrophe,911 事件,(根據(jù)讀音),卡塌一下,四處咣、飛。disaster=dis( away+ asterstar)星星脫離了原來的軌道,來到了地球上,“災(zāi)難(自然) ”。 asterisk“星號 ”, disastrousbool result = false 干“旱 ”, volcano 火山, floods commandLine = typhoon“臺風(fēng) ” wreck=wr ( wrong) +eck( deck夾板)形象化記憶:開始時甲板裝錯了,所以導(dǎo)致了 _devicePort.WriteLine(commandLine;例: The shi

9、p was wrecked on the rock. .Sleep(1000;string responseLine = _devicePort.ReadLine(;if (responseLine != null & commandLine = responseLineresult =truereturn result;public int ReadValue(int result = 0;string commandLine = string .Format( 0 1 2, DeviceType, DeviceNo, 0;if (_devicePort.IsOpen_devicePort.

10、WriteLine(commandLine;System.Threading. Thread .Sleep(1000;string responseLine = _devicePort.ReadLine(;if (responseLine != nullstring commandParts = responseLine.Split( ;if (commandParts.Length = 3result =int .Parse(commandParts2;return result;/ 構(gòu)造方法/deviceNo,public Device( SerialPort devicePort, LM

11、8962DeviceType deviceType, int int deviceValue_devicePort = devicePort;this .DeviceType = deviceType;this .DeviceNo = deviceNo;this .DeviceValue = deviceValue;#endregionpublic enum LM8962DeviceType/ 發(fā)光二極管/LEDS,/ 蜂鳴器/BUZZ,/ 溫度傳感器/LM75TestForm.csusing System;using System.Collections.Generic;using Syst

12、em.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1 public partial class TestForm : FormList _leds = new List (;Device _buzz;Device _lm75;public TestForm(InitializeComponent(;private void buttonOpen_Click(devPort =

13、new System.IO.Ports. int .Parse(comboBoxBaudRate.Text;devPort.Open(;for ( int i = 3; i = 6; i+_leds.Add( new Device (devPort,object sender, EventArgs eSerialPort (comboBoxPortName.Text,LM8962DeviceType .LEDS, i, 0;_buzz = new Device (devPort, _lm75 = new Device (devPort, buttonOpen.Enabled = false p

14、rivate void buttonLed_Click(LM8962DeviceType .BUZZ, 1, 0;LM8962DeviceType .LM75, 1, 0;object sender,EventArgs eButton bntSender = senderas Buttonint curValue;int writeValue;Color bntColor;switch (bntSender.Textcase LED3 :curValue = _leds0.ReadValue(; writeValue = curValue = 0 ? 1 : 0; bntColor = wri

15、teValue = 0 ? _leds0.WriteValue(writeValue; buttonLed3.BackColor = bntColor; break ;case LED4 :curValue = _leds1.ReadValue(; writeValue = curValue = 0 ? 1 : 0; bntColor = writeValue = 0 ? _leds1.WriteValue(writeValue; buttonLed4.BackColor = bntColor; break ;case LED5 :curValue = _leds2.ReadValue(; writeValue = curValue = 0 ? 1 : 0; bntColor = writeValue = 0 ? _leds2.WriteValue(writeValue; buttonLed5.BackColor = bntColor; break ;case LED6 :curValue = _leds3.ReadValue(;Color .Gree

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論