嵌入式实验四实验报告

  3.4基于UART的加法器的实现

  一、实验目的

  学习lm3s9b92的串口通信

  学习应用超级终端调试串口

  学会应用UART有关的库函数

  二、实验设备

  计算机、LM3S9B92开发板、USB A型公口转 Mini B型 5Pin 数据线1 条

  三、实验原理

  Stellaris系列ARM的UART具有完全可编程、16C550型串行接口的特性。Stellaris系列ARM含有2至3个UART模块。

  该指导书在第一部分的1.2节中说明,该开发板使用了FT2232芯片实现usb到串口的转换。并设置在芯片的B通道上使用虚拟COM接口(VCP)。虚拟串行端口(VCP)与LM3s9b92上的UART0模块连接。在安装FTDI驱动程序后,windows会分配一个串行通信端口号到VCP通道,并允许windows应用程序(如超级终端)通过USB与LM3s9b92上的UART0进行通信。 利用Windows超级终端调试UART的方法

  对于该开发板,使用的是USB虚拟的COM端口,无须使用DB9连接器。因此下面讲解一下如何利用Windows附带的超级终端来调试UART接口。

  Windows附件里的“超级终端”是个非常实用的应用程序,可以用来调试电脑的COM串行口,也能很好地支持通过USB虚拟的COM口。以下是超级终端配置COM端口的过程:

  四、实验要求

  采用超级终端作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:既可以采用轮询的方式也可以应用中断。

  五、实验步骤

  1、 连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。

  2、 根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。

  #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收发功能

  UARTConfigSet(UART0_BASE, // 配置UART端口

  9600, // 波特率:9600

  UART_CONFIG_WLEN_8| // 数据位:8

  UART_CONFIG_STOP_ONE | // 停止位:1

  UART_CONFIG_PAR_NONE); // 校验位:无

  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( ); // 时钟初始化:晶振, 6MHz

  uartInit( ); // UART 初始化

  uartPuts("输入格式 m+n= ");

  for (;;)

  {

  c = UARTCharGet(UART0_BASE); // 等待接收字符

  if(c>='0'&&c<='9')//判断收到的是否为字符{

  num=num*10+c-'0'; //将收到的字符转换为整形储存 }

  else if(c=='+'){ //接收第二个数 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 == ' ') // 如果遇到回车

  {

  UARTCharPut(UART0_BASE, ' '); // 多回显一个换行}

  }

  }

  3、 书写实验报告,要求附上程序流程图。

  六、实验心得

  比较轮询方式与中断方式

原创文章,作者:fanwen,如若转载,请注明出处:https://fanwen.hongwu.com/10932.html

(0)
上一篇 2022年7月21日 下午4:11
下一篇 2022年7月21日 下午4:14

相关推荐

  • 打电话的实验报告

      一、实验名称:杯子话筒   二、实验目的:打电话   三、实验器材:大回形针、绳子、杯子   四、实验原理:声音可以通过棉线来传播,但是线一定要拉直。   五、实验过程步骤: …

    实验报告 2022年9月11日
  • 星球的科学实验报告

      美国宾夕法尼亚大学一组天文学家对离开地球约95光年的两个双星进行了为期5年的观察,这两个双星系统拥有与我们太阳相类似的年轻恒星,因此研究它们能帮助天文学家预测太阳的强烈爆发和确…

    实验报告 2022年7月4日
  • 电子商务实验报告模板大全

      实验项目名称:企业信息化   实验目的:了解企业信息化的一般过程。   掌握企业信息化中企业领导的管理工作。   掌握企业信息化中一般员工的工作。   实验情况及实验结果:1、…

    实验报告 2022年8月30日
  • 网络商务信息检索与利用实验报告模板

      实验报告是把实验的目的、方法、过程、结果等记录下来,经过整理,写成的书面汇报。以下是第一范文网整理的网络商务信息检索与利用实验报告模板,欢迎阅读!   实验项目名称:网络商务信…

    实验报告 2022年10月3日
  • 初二物理实验报告模板

      本学期,在学校领导的正确指导下,实验教学工作取得了可喜的成绩,学生的观察能力和实验能力有了很大的提高,为了更好总结本学期实验教学工作中的经验和教训,特对本学期的实验教学工作总结…

    实验报告 2022年7月24日
  • LED调光实验报告

      高亮度发光二极管(LED)在各种领域应用普及,并要求LED具备有调光功能。在现在的几种调光技术中,从简单的可变电阻负载到复杂的脉冲宽度调制(PWM)开关,每一种方法均有其利弊。…

    实验报告 2022年10月25日
  • 考研初复试高分规律实验报告书

      一、实验目的:   如今关于考研的话题还在继续,考研如何顺利通过复试?考研er面对众多选择和重重困难又何去何从呢?我们针对这些问题进行了调查。   二、实验原理:人生在世,俯仰…

    实验报告 2022年7月9日
  • 大学物理实验报告模板范本

      大学物理实验报告 热敏电阻   热敏电阻是阻值对温度变化非常敏感的一种半导体电阻,具有许多独特的优点和用途,在自动控制、无线电子技术、遥控技术及测温技术等方面有着广泛的应用。本…

    实验报告 2022年12月12日
  • 液液转盘萃取的实验报告范文

    篇一:萃取和分液实验报告   一、实验目的:   (1)了解萃取分液的基本原理。   (2)熟练掌握分液漏斗的选择及各项操作。   二、实验原理:   利用某溶质在互不相溶的溶剂中…

    实验报告 2022年8月8日
  • 初中物理实验用塑料瓶做实验报告范文

      (一)、声学实验   1.声音的产生和空气能传声在一只塑料瓶中放一些小纸屑,敲击塑料瓶,可以观察到瓶底的小纸屑跳动起来,而不敲击时发现瓶底的小纸屑并不跳动。说明声音是由于物体的…

    实验报告 2022年7月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注