本帖最后由 jinglixixi 于 2021-2-4 18:22 编辑
在官网的例程中,提供了3个与KEY和LED灯的示例,分别是:periph_blinky、periph_blinky_color及periph_gint, 其功能分别是: 1. 使用SysTick计时器,以1秒的频次来切换LED灯的开关状态; 2. 使用SysTick计时器,在7种色彩状态以1秒的频次进行切换; 3. 使用SW1-WAKE 和 SW2-ISP键来共同控制LED灯的开关,所使用的方式为中断方式;
为了便于实际的使用,这里提供一个以KEY控制LED灯的用法,即一键控制一个LED灯的开关,所使用的方式为查询方式。 相应的主程序为: int main(void) { intloop = 1; /* Used to fix theunreachable statement warning */ SystemCoreClockUpdate(); Board_Init(); // 关闭RGB_LED Board_LED_Set(0,false); //red Board_LED_Set(1, false); //green Board_LED_Set(2,false); //blue Board_Button_Init(); while (loop) { if(Board_Button_Get(0)) Board_LED_Set(1, true); else Board_LED_Set(1,false ); // sw2--- green
if(Board_Button_Get(1)) Board_LED_Set(2, true); else Board_LED_Set(2,false ); // sw3--- blue
if(Board_Button_Get(2)) Board_LED_Set(0, true); else Board_LED_Set(0,false ); // wake --- red } return0; }
为定义按键的引脚分配,所定义结构类型及引脚配置如下: typedef struct { uint8_tport; uint8_tpin; } PORT_PIN_T;
static const PORT_PIN_T btnBits[] = {{0,31}, {0, 4}, {0, 24}}; static const uint32_t btnBits_ct =sizeof(btnBits) / sizeof(PORT_PIN_T);
对应上述的按键引脚配置,其初始化函数为: static void Board_Button_Init(void) { uint32_ti; /*Pin muxing setup as part of board_sysinit */ for(i = 0; i < btnBits_ct; i++) { Chip_GPIO_SetPinDIRInput(LPC_GPIO,btnBits.port, btnBits.pin); } }
经程序的编译和下载,其结果符合程序的设想,实现一键控制一个LED灯的作用。
测试效果图 有了上述的基础,后面我们就可以用I/O来驱动相应的显示屏,并以按键来控制程序的运行及参数的设置了。
|