LORA-B1 按键控制
本节主要实现Lora-B1板上按键输入检测,控制led亮灭,目的也是为了不熟悉stm32的童鞋更加快速熟悉基本的开发流程。而对于比较熟悉的同学可以略过此章节部分。
开发环境准备:
硬件:
- Lora-B1开发板一块
- DAPLINK(或STLINK、Jlink)调试器
软件:
- stm32cubemx
- MDK5
硬件原理图:
LED连接到stm32的PF1引脚,KEY连接到PF0引脚。
软件配置:
打开stm32cubemx,型号选择stm32f030F4。配置PF1为输出,并取名为LED,配置PF0为输入,并取名为KEY。
当然这样还没有完,从原来图可以看出来我们的KEY接在引脚和GND之间,但是和引脚相连的地方并没有加外部上拉。所以在软件里面我们要设置PF0为带上拉输入模式。
其他请参考第一节的配置,生成mdk工程。
代码实现:
代码实现比较简单,用keystate状态来代表按键状态,这样通过状态机的处理也很容易进行按键滤波。
1 |
<br> while (1)<br> {<br> uint8_t tstate=HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin);<br> switch(keyState)<br> {<br> case 0:<br> if(tstate==GPIO_PIN_RESET)keyState=1;<br> break;<br> case 1:<br> if(tstate==GPIO_PIN_RESET)<br> {<br> HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);<br> keyState=2;<br> }<br> else keyState=0;<br> break;<br> case 2:<br> if(tstate==GPIO_PIN_SET)keyState=0;<br> break;<br> }<br> HAL_Delay(10);<br> /* USER CODE END WHILE */<br><br> /* USER CODE BEGIN 3 */<br> } |