北航ARM9实验报告.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北航ARM9实验报告

1 ARM9嵌入式系统实验 实验报告 院(系)名称 自动化科学与电气工程学院 学生姓名 学号 任课老师 201年 11 月 1 日 实验一 ARM基础知识和开发环境 一、实验目的 1.掌握ARM的串行口工作原理。 2.学习编程实现ARM的UART通讯。 3.掌握S3C2410寄存器配置方法。 二、实验内容 1.熟悉打开已有工程的步骤,掌握仿真调试的方法。 2.建立一个新工程,熟练掌握编译器和链接器的设置方法。 3.从串口输入字符串,将0~9数字在超级终端上连续显示,“Enter”键换行。 4.将第三步得到的字符转换成BCD码,限制在0~1023,用于控制直流电机。 三、预备知识 1. 了解EWARM集成开发环境的基本功能 2. 学习串口通讯的基本知识 3. 熟悉S3C2410串口有关的寄存器 四、实验设备及工具 1. 2410s教学实验箱 2. S3C2410的JTAG仿真器 3. ARM EWARM5.3集成开发环境 4. 串口连接线 五、实验原理及说明 异步串行I/O 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 RS-232C接口通信的两种基本连接方式 这是美国电子工业协会推荐的一种标准(Electronic industries Association Recoil-mended Standard)。它在一种25针接插件(DB—25)上定义了串行通信的有关信号。这个标准后来被世界各国所接受并使用到计算机的I/O接口中。两种连接方式如下图: 信号电平规定 EIA电平:双极性信号逻辑电平, 它是一套负逻辑定义 -3V到-25V之间的电平表示逻辑“1”。 +3V到+25V之间的电平表示逻辑“0”。 TTL电平:计算机内部(S3C2410)使用LVTTL电平 电平转换电路:常用专门的RS-232接口芯片,如SP3232、SP3220等,在LVTTL电平和EIA电平之间实现相互转换。 异步串行口接口电路 六、实验方法 以实验一为模板,完成实验的1和2。 将接收串口数据的数组cl[1]改为cl[256],用cl[i]==0x0d 回车字符作为一帧结束的条件。 将“Exp4 电机转动控制实验” inc目录下的MotorCtrl.H 和src目录下的MotorCtrl.C拷到该工程相应目录,将MotorCtrl.C 添加到工程中。 在main函数里包含以下头文件 #include “../inc/MotorCtrl.h” 在main函数里包含以下头文件 #include “inc/macro.h“,#define MOTOR_COUNT 12657。 在Main函数里执行init_MotorPort()。 直流电机调试的函数是 SetPWM((setspeed -512)*MOTOR_COUNT/1024),setspeed是速度指令,取值范围0~1023。 七、程序源代码#include ../inc/MotorCtrl.h #include ../inc/macro.h #define U8 unsigned char #include string.h #include stdio.h #define TRUE 1 #define FALSE 0 #define MOTOR_COUNT 12657 //#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting #define rUTRSTAT0 (*(volatile unsigned *)0 #define rUTRSTAT1 (*(volatile unsigned *)0 #define WrUTXH0(ch) (*(volatile unsigned char *)0=(unsigned char)(ch) #define WrUTXH1(ch) (*(volatile unsigned char *)0=(unsigned char

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档