满分请教关于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
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);
}