|
发表于 2013-7-9 10:28:31
|
显示全部楼层
本帖最后由 monkerman 于 2013-7-9 10:33 编辑
1. 地址肯定是封装在某个头文件中了. 你找找.
2. 无法操作?? 赋值的话可能会有好多中情况, 可以一次性写 FIODIR, 也可以两次 FIODIRH/L, 也可以四次写. 你找找看.
这个估计是控制 IO 方向的. 你得从 IO 寄存器读写才行. 看手册呀. 我没弄过 LPC, 你在板子上试试?
另外, 可以运行下面这个程序, 顺便理解联合体和结构体:- #include <stdio.h>
- #define __IO volatile
- union {
- __IO unsigned int FIODIR ;
- struct {
- __IO unsigned short FIODIRL ;
- __IO unsigned short FIODIRH ;
- };
- struct {
- __IO unsigned char FIODIR0 ;
- __IO unsigned char FIODIR1 ;
- __IO unsigned char FIODIR2 ;
- __IO unsigned char FIODIR3 ;
- };
- } IO_DIR;
- int main(void)
- {
- IO_DIR.FIODIR = 0x12345678;
- printf("%x\n\n", IO_DIR.FIODIR);
- printf("%x\n", IO_DIR.FIODIRH);
- printf("%x\n\n", IO_DIR.FIODIRL);
- printf("%x\n", IO_DIR.FIODIR0);
- printf("%x\n", IO_DIR.FIODIR1);
- printf("%x\n", IO_DIR.FIODIR2);
- printf("%x\n", IO_DIR.FIODIR3);
- return 0;
- }
复制代码 |
|