niosII中串口RS232程序使用结构体和联合体结合的用法
时间:12-16
来源:互联网
点击:
S II主端口与16位UART端口进行数据传输时,只有32位的低16位有效,但是高16位也占用了地址空间,也就是说,UART端口的16位实际上是占用了32位的。假设我们现在的基地址是0X00,那么6个寄存器他们相对基地址的偏移分别为0X00,0X01,0X02,0X03,0X04,0X05;那么,从主端口看,这6个寄存器的地址分别为0X00,0X04,0X08,0X0C,0X10,0X14,而不是0X00,0X01,0X02,0X03,0X04,0X05,也不是0X00,0X02,0X06,0X08,0X0A,0XC,这一点大家要特别注意。
2. 为什么要建立这样一个共用体呢,又有位域结构体又有一个volatileunsignedlongintWORD变量,WORD有啥用呢?共用体的特点就是其中的成员占用同一个存储空间。也就说,由位域组成的结构体跟WORD是占用同一存储空间,而且他们都是volatileunsignedlongint类型,那么,结构体中的每一个位域成员都对应WORD的一个位。当我们需要单独处理一个位的时候,我们就可以用位域,如下所示
RS232->CONTROL.BITS.IRRDY=1;//接收准备好中断使能 |
如果我们想要对状态寄存器整体清零呢,我们就可以用到WORD了,如下所示
RS232->STATUS.WORD=0;//清除状态寄存器 |
对于其他的寄存器都是一样的,在这里不再重复了。
niosII串口RS232结构体联合体结 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)