北航研究生ARM9嵌入式系统实验报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航研究生ARM9嵌入式系统实验报告

实验一ARM基础知识和开发环境 一、实验目的 1.掌握ARM的串行口工作原理。 2.学习编程实现ARM的UART通讯3.掌握S3C2410寄存器配置方法。 二、实验内容 1熟悉打开已有工程的步骤,掌握仿真调试的方法。 2建立一个新工程,熟练掌握编译器和链接器的设置方法。 3从串口输入字符串,将0~9数字在超级终端上连续显示,“Enter”键换行。 4将第三步得到的字符转换成BCD码,限制在0~1023,用于控制直流电机。 三、预备知识 1了解EWARM集成开发环境的基本功能 2学习串口通讯的基本知识 3熟悉S3C2410串口有关的寄存器 四、实验设备及工具 12410s教学实验箱 2S3C2410的JTAG仿真器 3ARM EWARM5.3集成开发环境 4串口连接线 五、实验原理及说明 异步串行I/O 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 1 异步串行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电平之间实现相互转换。 异步串行口接口电路 图3 异步串行口接口电路 发送数据和接收数据 发送数据 void Uart_SendByten(int Uartnum, U8 data) //往串口发送数据 WrUTXH0(data); //往串口数据寄存器写数据 接收数据 char Uart_Getchn(char* Revdata, int Uartnum, int timeout)//接收数据 RdURXH0(); //读取串口数据寄存器数据 void Uart_SendByten(int Uartnum, U8 data { if(Uartnum==0) { while(!(rUTRSTAT0 0x4)); //Wait until THR is empty. hudelay(10); WrUTXH0(data); } else { while(!(rUTRSTAT1 0x4)); //Wait until THR is empty. hudelay(10); WrUTXH1(data); } } char Uart_Getchn(char* Revdata, int Uartnum, int timeout) { if(Uartnum==0) { if((rUTRSTAT0 0x1)==0x01) //Receive data read { *Revdata=RdURXH0(); return TRUE; } else { return FALSE; } } else { while(!(rUTRSTAT1 0x1));//Receive data read *Revdata=RdURXH1(); return TRUE; } } void init_MotorPort() { rGPBCON=rGPBCON0x3ffff0|0xa; //Dead Zone=24, PreScalero1=2; rTCFG0=(0

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档