使用C语言操作SCI寄存器与CMD文件的编写.doc

使用C语言操作SCI寄存器与CMD文件的编写.doc

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

使用C语言操作SCI寄存器与CMD文件的编写 姓名: 金鸽 专业:电子与通信工程 学号:201422172172 导师: 齐林 寄存器的C语言访问 DSP的寄存器能够实现对系统和外设功能的配置和控制,因此在DSP的开发过程中,对于寄存器的操作是极为重要的,也是很频繁的,也就是说对寄存器的操作是否方便会直接影响到DSP的开发是否方便。F2812为大家提供了位定义和寄存器结构体的方式,能够很方便地实现对DSP内部急促你的访问和控制。 SCI寄存器 F2812的SCI模块具有相同的串行通信接口SCIA和SCIB,也就是说体现到硬件上的话,F2812支持两个串口。SCIA和SCIB就像双胞胎一样,具有相同的寄存器文件,如下表所示为SCIA寄存器。 从表中可看到,外设SCIA的每一个寄存器都占据1字节,即16位宽度。从其地址分布来看,SCIA的寄存器地址00x0000705F,中间缺少了00x0000705D,0x0000705E.上表中列出的寄存器位于F2812存储器空间的外设帧2内,是在物理上实实在在存在的存储器单元上。实际上,这些寄存器就是定义了具体功能的存储器单元,系统会根据这些存储单元中具体的配置来进行工作。 使用位域定义的方法定义寄存器 位域,就是把一个字节中得二进制位划分为几个不同的区域,并说明每个区域的位数。每个域都有一个域名,允许在程序中按域名进行操作。位域的定义与位域变量的说明同结构体定义何其成员说明类似,其语法格式为: Struct位域结构名 { 类型说明符 位域名1:位域长度 类型说明符 位域名1:位域长度 类型说明符 位域名1:位域长度 }; 其中,类型说明符就是基本的数据类型,可以是int、char型等。位域名可以任意取,能够反映其位域的功能就好,位域长度是指这个位域是由多少个位组成的。 说明: ? ? ? 1)位域的定义必须按从右向左的顺序,也就是说从最低位开始 定义。 ? ? ? 2)一个位域必须存储在同一个字节中,不能跨两个字节。如果一个字节的剩余空间不够存放另一个位域时,?应该从另一个字节开始存放该域,如下例。 ? ? ? 3)位域的长度不能超过一个字节,也就是说一个位域不能超过8位。 ? ? ? 4)位域可以无位域名,这时,它只用作填充或者调整位置。无名的位域不能使用,如下例。 cpp]?view plaincopy Struct?bs?? {?? ?int?a:?4;?? ?int?:?0;???//?空域?? ?int?b:?5;??//?从下一个字节开始存放该域?? ?int?c:?3;?? };?? ?? Struct?bs?? {?? ?int?a:?5;?? ?int?:?3;???//?无名的位域无法使用?? ?int?b:?6;????? ?int?c:?2;?? };?? SCIA模块所有的寄存器都是8位的,当一个寄存器被访问时,寄存器数据位于低8位,高8位为0.SCICCR的D0~D2为字符长度控制位SCICHAR,占据了3位。D3为SCI多处理器模式控制位ADDRIDL_MODE,占据1位。D4为SCI回送从测试模式使能位LOOP_BKENA,占据1位。D5为SCI极性使能位PARITYENA,占据1位。D6为SCI奇偶极性使能位PARITY,占据1位。D7位SCI结束位的个数STOPBITS,也占据1位。D8~D15为保留,共8位。下面就是用位于方式定义SCICCR。 [cpp]?view plaincopy Struct?SCICCR_BITS?? {?? ??Uint16??SCICHAR:??3;?????????//??2?:?0??????字符长度控制位????? ??Uint16??ADDRIDLE_MODE:??1;???//??3??????????多处理器模式控制位?? ??Uint16??LOOPBACKENA:??1;?????//??4??????????回送测试模式使能位?? ??Uint16??PARITYENA:??1;???????//??5??????????极性使能位?? ??Uint16??PARITY:??1;??????????//??6??????????奇偶极性选择位?? ??Uint16??STOPBITS:??1;????????//??7??????????停止位个数?? ??Uint16??rsvd1:??8;???????????//??15:8???????保留位?? };?? ?? struct?SCICCR_BITS?b

文档评论(0)

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

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

1亿VIP精品文档

相关文档