在线时间613 小时
UID252169
注册时间2010-12-5
NXP金币0
TA的每日心情 | 开心 2019-2-14 16:49 |
---|
签到天数: 296 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 4473
- 最后登录
- 2020-4-14
|
本帖最后由 zhjb1 于 2017-5-1 07:03 编辑
板上除了Reset微动,还带了4只微动按钮,分别连接在GPIO1的8,9,10,11上,这样首先需要更改串口LCD的驱动线。为了更改方便,我们将所有定义用户IO口统一定义,这样以后只需要更改用户统一规范定义代码就可以了,而在具体函数中就不需要一一更改了,具体举按键为例说明:
先在board.h中定义key的GPIO引脚:
//Define KEY PINs
#define keyGpio 1
#define key1 8
#define key2 9
而后再在主函数的ioInit中定义KEY[此节是增加按键]:
//Define KEY Pins
#define KEY1 Chip_GPIO_GetPinState(LPC_GPIO,keyGpio,key1)
#define KEY2 Chip_GPIO_GetPinState(LPC_GPIO,keyGpio,key2)
Chip_GPIO_SetPinDIR(LPC_GPIO,keyGpio,key1,false);
Chip_GPIO_SetPinDIR(LPC_GPIO,keyGpio,key2,false);
之后再编写查询按键的函数:
//KEY Test
void keyTest(void){
if((KEY1==0)||(KEY2==0)){
delay(100);
if(KEY1==0){Chip_GPIO_SetPinToggle(LPC_GPIO,LEDGpio,LED4);}//Chip_GPIO_SetPinOutLow
if(KEY2==0){Chip_GPIO_SetPinToggle(LPC_GPIO,LEDGpio,LED5);}//Chip_GPIO_SetPinOutHigh
}
}
最后在main主函数中的循环语句中加入:
keyTest();
就一切Ok了,结果是按key1[板上丝印PB2]不松手,LED7闪亮,松手后随机;key2[板上丝印PB3]不松手,LED6闪亮,松手后随机;见照片41,42。
其他的PWM、ADC、LCD、LED都如法炮制,更改引脚只需要更改board.h中的定义就可以了,程序中不再需要更改如何东西。
|
-
41-按key1键LED4闪亮
-
42-按key2键LED7闪亮
|