一、硬件框图及要求
二、模块代码与功能实现
2.1、STM32CubeMX配置
2、模块配置与代码
2.2.1、LED模块
将PC8~PC15配置为GPIO_Output;将PD2配置GPIO_Output。LED驱动代码如下:
//LED驱动代码
void LED_Display(uchar led)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC, led << 8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
}
2.2.2、LCD模块
lcd不需要配置,只需将官方给的lcd.c与lcd.h拷贝到自己项目文件夹下,在main函数中使用LCD_Init();初始化即可使用。
2.2.4、键盘模块
将PB0、PB1、PB2、PA0、配置成GPIO_Input,设置为Pull-up上拉模式。在配置定时器TIM4每10ms中断一次,即将预分频系数psc设置为80-1,重装载值设置为10000-1。
使用定时器TIM4来扫描键盘状态,每隔10ms扫描一次;
key.h文件内容
struct keys
{
uchar key_sta;
uchar key_judge;
bool key_flag;
};
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
key.c文件内容</