概述
CPU和外设通信的方式有轮训和中断两种方式;所谓轮训就是主动询问某个状态,看看是否是某个值,如果是则采取行动;中断则是一旦发生了,会主动通知CPU;
本章来研究一下通过如何轮训的方式来响应按键事件。
代码概览
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "../lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h"
#include "../lib/STM32F10x_StdPeriph_Driver/inc/misc.h"
#include "../lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h"
void delay(unsigned int time)
{
unsigned int i = 0;
while (time--)
{
i = 1000000;
while (i--)
;
}
}
u8 key_read()
{
u8 result = 0;
result = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12);
return result;
}
void led_init()
{
GPIO_InitTypeDef led;
RCC_APB2PeriphC