本文介绍基于STM32CUBEMX-HAL库的按键信息串口打印实验。
按键原理图如上,实验效果为,当按下WK_UP键时,串口打印“上”,按下KEY2按键时,串口打印“左”,按下KEY0按键时,串口打印“右”,按下KEY1按键时,串口打印“下”。然后按下按键时,总是DS1亮。
1:打开STM32CUBEMX设置好库和选择使用的具体芯片型号。
2:设置好SYSCORE部分的RCC及SYS部分。使用外部晶振,所以RCC设置处选择High Speed Clock-Crystal/,
SYS部分根据使用的是JTAG或者SWD调试进行选择
串口选择异步触发,115200,通信速率
3:设置好中断口,PH2,按键KEY1,设置好中断及下降沿触发
串口和PH2中断打钩
生成MDK工程
4:在主函数main.c中添加
头文件
#include "stm32f4xx_hal_gpio.h"
#include <stdint.h>
数组
uint8_t aTxStartMessages1[] = "下";
在主函数mian.c中添加
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin_2)
{
if(HAL_GPIO_ReadPin(GPIOH, GPIO_PIN_2) == GPIO_PIN_RESET)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_UART_Transmit(&huart1,(uint8_t *)aTxStartMessages1,sizeof(aTxStartMessages1),0xFFFF);//(uint8_t*)aTxStartMessages2为字符串地址,sizeof(aTxStartMessages1)表示字符串长度为数组aTxStartMessages1的长度,0xFFFF为超时时间
}
}
5。编译后,连接串口线,打卡串口助手,按下KEY1键,观察打印信息