打开Demo包中02_GPIO_Key_Polling_mode文件夹下Keil程序
我们在原程序的基础上添加如下内容
int main(void)
{
uint8_t count;
systick_config();
/* enable the LED2 GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOC);
/* configure LED2 GPIO pin */
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_7|GPIO_PIN_8);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7|GPIO_PIN_8);
gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6|GPIO_PIN_7);
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6|GPIO_PIN_7);
/* reset LED2 GPIO pin */
gpio_bit_reset(GPIOA,GPIO_PIN_7);
gpio_bit_reset(GPIOA,GPIO_PIN_8);
gpio_bit_reset(GPIOC,GPIO_PIN_7);
gpio_bit_reset(GPIOC,GPIO_PIN_6);
/* configure key pin as input */
gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);
while(1) {
/* check whether the key is pressed */
if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0)) {
delay_1ms(100);
/* check whether the key is pressed */
if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0)) {
switch(count)
{
case 0:gpio_bit_toggle(GPIOA, GPIO_PIN_7);break;
case 1:gpio_bit_toggle(GPIOA, GPIO_PIN_8);break;
case 2:gpio_bit_toggle(GPIOC, GPIO_PIN_6);break;
case 3:gpio_bit_toggle(GPIOC, GPIO_PIN_7);break;
}
count++;
if(count == 4)
{
count=0;
}
/* toggle LED2 GPIO pin */
}
while(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0)) {
}
}
}
}
编译完代码无误后,下载程序
这时我们每按下一次按键,LED1-LED4,依次点亮然后熄灭
Demo对应的例程有些少,接下来会围绕IIC和spi进行简单测试
|