资源描述:
《实验3——ARM的串行口实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程名称:嵌入式技术 开课机房:11号机房2012年4月1日星期二8:10~11:35专业班级通信09(1)班学号 Xb姓名 董达意实验项目名称实验3——ARM的串行口实验指导教师陈玮 一、实验任务与实验目的实验目的1.了解UART的基本知识2.掌握基于群星系列CM3程序库的UART配置、数据收发编程3.学会串口调试助手或超级终端的使用实验任务任务一:使用Stellaris驱动库函数,编写可以接收及发送字符串的基于EASYARM8962开发板的UART驱动程序任务二:在MicrosoftVisualStudio开发环境下,使用C#编
2、写一桌面程序,要求可以通过串口发送指令,使用其打开LED3~LED6。命令协议可以自己定义。 二、报告内容任务一#include"uartGetPut.h"#include"systemInit.h"#include#include#include#definePART_LM3S8962#include//定义接收缓冲区#defineMAX_SIZE40//缓冲区最大限制长度charRxBuf[1+MAX_SIZE];//接收缓冲区intBufP=0;//缓冲区位置变量tBooleanRxEndFlag
3、=false;//接收结束标志//UART2中断服务函数voidUART0_ISR(void){charc;unsignedlongulStatus;ulStatus=UARTIntStatus(UART0_BASE,true);//读取当前中断状态UARTIntClear(UART0_BASE,ulStatus);//清除中断状态if((ulStatus&UART_INT_RX)
4、
5、(ulStatus&UART_INT_RT))//若是接收中断或者{//接收超时中断for(;;){if(!UARTCharsAvail(UART0_BASE))break;//若接收FIFO里无
6、字符则跳出c=UARTCharGetNonBlocking(UART0_BASE);//从接收FIFO里读取字符if(c=='r'){UARTCharPut(UART2_BASE,'r');//回显回车换行UARTCharPut(UART2_BASE,'');RxEndFlag=true;//接收结束标志置位break;}if(isprint(c))//若是可打印字符{if(BufP