首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

满分请问关于IO操作的方法

2012-12-31 
满分请教关于IO操作的方法求教一个关于IO操作的问题因为考虑到嵌入式开发硬件的管脚经常需要修改现在用的

满分请教关于IO操作的方法
求教一个关于IO操作的问题

因为考虑到嵌入式开发硬件的管脚经常需要修改
现在用的是直接去操作IO,感觉每次改都要改好多地方,想用函数的方法去封装这些IO操作,到时候管脚修改只要修改函数里的IO这一个地方就好了。

想问下有没其他的方法?


顺求诸如,有限状态机这样的一些嵌入式常用的一些技巧的书。
[解决办法]
不知道#define满不满足楼主的要求

.h


#define LCD_DIE_GPB,9
#define LCD_RWE_GPB,10
#define LCD_ENE_GPB,11
//8根数据线接的是PA的低8位
//#define LCD_DBE_GPA
#define LCD_DB0E_GPA,1
#define LCD_DB1E_GPA,2
#define LCD_DB2E_GPA,3
#define LCD_DB3E_GPA,4
#define LCD_DB4E_GPA,5
#define LCD_DB5E_GPA,6
#define LCD_DB6E_GPA,7
#define LCD_DB7E_GPA,8


.c

void lcd192_64_init(void)
{
DrvGPIO_Open(LCD_RW,E_IO_OUTPUT);
DrvGPIO_Open(LCD_EN,E_IO_OUTPUT);
DrvGPIO_Open(LCD_DI,E_IO_OUTPUT);
DrvGPIO_Open(LCD_CS1,E_IO_OUTPUT);
DrvGPIO_Open(LCD_CS2,E_IO_OUTPUT);
DrvGPIO_Open(LCD_CS3,E_IO_OUTPUT);
DrvGPIO_Open(LCD_RST,E_IO_OUTPUT);

DrvGPIO_Open(LCD_DB0,E_IO_QUASI);
DrvGPIO_Open(LCD_DB1,E_IO_QUASI);
DrvGPIO_Open(LCD_DB2,E_IO_QUASI);
DrvGPIO_Open(LCD_DB3,E_IO_QUASI);
DrvGPIO_Open(LCD_DB4,E_IO_QUASI);
DrvGPIO_Open(LCD_DB5,E_IO_QUASI);
DrvGPIO_Open(LCD_DB6,E_IO_QUASI);
DrvGPIO_Open(LCD_DB7,E_IO_QUASI);

DrvGPIO_ClrBit(LCD_EN);

lcd192_64_reset();
lcd192_64_write(CS1,true,LCD_COMMAND_ON);
lcd192_64_write(CS1,true,LCD_COMMAND_ON);
lcd192_64_write(CS2,true,LCD_COMMAND_ON);
lcd192_64_write(CS3,true,LCD_COMMAND_ON);
delayus(20000);
}


如果改线了直接在.h文件中改下就行了
[解决办法]
宏定义应该可以实现吧,对每个端口的IO管脚预先定义宏定义
[解决办法]
宏定义我觉得就挺好的。用起来也很方便啊。
[解决办法]
引用:
引用:
不知道#define满不满足楼主的要求

.h

C/C++ code

#define LCD_DI    E_GPB,9
#define LCD_RW    E_GPB,10
#define LCD_EN    E_GPB,11
//8根数据线接的是PA的低8位
//#define LCD_DB    E_GPA
#define LCD_DB……


assert 一般只在 debug 下有用,而且没有看出两者有何关系,

预编译--〉预先编译 --〉发生在编译之前

热点排行