- 相關(guān)推薦
嵌入式實(shí)驗四實(shí)驗報告
一、實(shí)驗目的
學(xué)習lm3s9b92的串口通信
學(xué)習應用超級終端調試串口
學(xué)會(huì )應用UART有關(guān)的庫函數
二、實(shí)驗設備
計算機、LM3S9B92開(kāi)發(fā)板、USB A型公口轉 Mini B型 5Pin 數據線(xiàn)1 條
三、實(shí)驗原理
Stellaris系列ARM的UART具有完全可編程、16C550型串行接口的特性。Stellaris系列ARM含有2至3個(gè)UART模塊。
該指導書(shū)在第一部分的1.2節中說(shuō)明,該開(kāi)發(fā)板使用了FT2232芯片實(shí)現usb到串口的轉換。并設置在芯片的B通道上使用虛擬COM接口(VCP)。虛擬串行端口(VCP)與LM3s9b92上的UART0模塊連接。在安裝FTDI驅動(dòng)程序后,windows會(huì )分配一個(gè)串行通信端口號到VCP通道,并允許windows應用程序(如超級終端)通過(guò)USB與LM3s9b92上的UART0進(jìn)行通信。 利用Windows超級終端調試UART的方法
對于該開(kāi)發(fā)板,使用的是USB虛擬的COM端口,無(wú)須使用DB9連接器。因此下面講解一下如何利用Windows附帶的超級終端來(lái)調試UART接口。
Windows附件里的“超級終端”是個(gè)非常實(shí)用的應用程序,可以用來(lái)調試電腦的COM串行口,也能很好地支持通過(guò)USB虛擬的COM口。以下是超級終端配置COM端口的過(guò)程:
四、實(shí)驗要求
采用超級終端作為外部輸入與輸出的接口,實(shí)現多位數的相加。即通過(guò)UART串口分別輸入需要相加的多位數A與B,最后把A和B兩個(gè)多位數相加的過(guò)程和結果,回顯給用戶(hù)。具體實(shí)現方法:既可以采用輪詢(xún)的方式也可以應用中斷。
五、實(shí)驗步驟
1、 連接實(shí)驗設備:使用USB mini B線(xiàn)纜的mini端與開(kāi)發(fā)板ICDI口相連,另一端接到PC機的USB插口上。
2、 根據實(shí)驗要求編寫(xiě)、調試、運行程序。并要求在代碼上附上相關(guān)的注釋。
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "grlib/grlib.h"
#include "drivers/kitronix320x240x16_ssd2119_8bit.h"
#include "drivers/set_pinout.h"
#include "systemInit.h"
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART0); // 使能UART模塊
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA); // 使能RX/TX所在的GPIO端口 GPIOPinTypeUART(GPIO_PORTA_BASE, // 配置RX/TX所在管腳為
GPIO_PIN_0 | GPIO_PIN_1); // UART收發(fā)功能
UARTConfigSet(UART0_BASE, // 配置UART端口
9600, // 波特率:9600
UART_CONFIG_WLEN_8| // 數據位:8
UART_CONFIG_STOP_ONE | // 停止位:1
UART_CONFIG_PAR_NONE); // 校驗位:無(wú)
UARTEnable(UART0_BASE); // 使能UART端口
}
void uartPuts(const char *s)
{
while (*s != '')
{
UARTCharPut(UART0_BASE, *(s++));
}
}
main(void)
{
char c,a[12];
int sum=0,num=0,i;
// jtagWait( ); // 防止 JTAG 失效,重要!
clockInit( ); // 時(shí)鐘初始化:晶振, 6MHz
uartInit( ); // UART 初始化
uartPuts("輸入格式 m+n= ");
for (;;)
{
c = UARTCharGet(UART0_BASE); // 等待接收字符
if(c>='0'&&c<='9')//判斷收到的是否為字符{
num=num*10+c-'0'; //將收到的字符轉換為整形儲存 }
else if(c=='+'){ //接收第二個(gè)數 sum=sum+num;
num=0;
}
else if(c=='=') //輸出
{
sum=sum+num;
num=0;
for(i=0;sum!=0;i++)
{
a[i]=sum%10;
sum=(sum-a[i])/10;
}
for(i--;i>=0;i--){
UARTCharPut(UART0_BASE, a[i]+'0'); }
UARTCharPut(UART0_BASE, ' '); }
if (c == ' ') // 如果遇到回車(chē)
{
UARTCharPut(UART0_BASE, ' '); // 多回顯一個(gè)換行}
}
}
3、 書(shū)寫(xiě)實(shí)驗報告,要求附上程序流程圖。
六、實(shí)驗心得
比較輪詢(xún)方式與中斷方式
【嵌入式實(shí)驗四實(shí)驗報告】相關(guān)文章:
實(shí)驗報告10-13
實(shí)驗報告實(shí)驗心得05-21
科技實(shí)驗報告07-03
教育實(shí)驗報告07-03
實(shí)驗報告范本07-03
實(shí)驗報告范文07-02
實(shí)驗報告模板07-02
生物實(shí)驗報告08-13
關(guān)于實(shí)驗報告01-27