历史上的今天
今天是:2025年03月29日(星期六)
2019年03月29日 | 基于STM32利用按键点亮LED灯
2019-03-29 来源:eefocus
基于STM32利用按键点亮LED灯的基本步骤:
(1)打开stm32CubeMX,创建新工程文件
(2)选择需要的芯片,本次实验采用的是STM32F411RETx
(3)黄色代表可被使用的引脚,绿色代表已被确定功能的引脚。左侧设置栏中的红色部分表示:IO口复用造成的重叠,以至不能继续使用。
(4)选好芯片,设置好相关系数参量后,选择与keil5相对应的MDK—ARM V5。
源程序:
1.按键按下LED灯点亮
int main
{
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){
HAL_Delay(10); //延时去抖
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){ //判断是否有键按下,有则亮
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
}else{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
}
}
}
2.按键按下,LED灯亮1s后熄灭
int main
{
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){
HAL_Delay(10);
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){ //判断时候有键按下
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(1000); //按键按下后灯亮1S
}else{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
}
}
}
3.按键按下LED点亮,再按键LED熄灭
int main{
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0)
{
HAL_Delay(100); //延时去抖
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0) //判断是否有键按下
{
//功能代码处
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); //有键按下就反转
//功能代码处
while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0);
}
}
}
配置引脚的初始化电平
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);
/*Configure GPIO pin : PC13 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA5 */
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
上一篇:STM32蜂鸣器-库函数
下一篇:stm32 汇编点灯程序
史海拾趣
|
AT89C51如何通过(USB-HOST)ISP1362读取U盘MP3数据 C程序 本人想利用AT89C51SND1C单片机读取U盘的数据。不知道怎么读取。。。请教高手指点一二,最好是C语言写的,我的编译器是Keil C … 查看全部问答> |
|
关于mipsel-linux交叉编译strongswan的问题 我在交叉编译strongswan的时候,遇到一个问题,在网上找了好久,也没有找到确切的答案。 问题如下: mipsel-linux-ld: ../../../lib/libcrypto/libblowfish/libblowfish/libblowfish.a(bf_skey.o):linking PIC files with non-PIC files Bad val ...… 查看全部问答> |
|
我在keil下开发cortex m3系列的lm3s811.但是我想用到c标准库的string函数等等。如果没有把C库的lib加入keil的话。那么程序会跑到未定义的向量表~~~… 查看全部问答> |
|
请问: pucMACArray[0] = ((ulUser0 >> 0) & 0xff); pucMACArray[1] = ((ulUser0 >> 8) & 0xff); pucMACArray[2] = ((ulUser0 >> 16) & 0xff); pucMACArray[3] ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:40 编辑 在TI E2E社区中发现了几篇不错的文章,特意翻译过来分享给大家,其中Bruce Trump系列关于放大器有很好的见解,特此供大家参考。 摘要:虽然 Bode 图是一种很不错的分析工具,但是您可能还没有发现, ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 04:06 编辑 我用的是STM32F103ZE,摄像头是带FIFO的ov7670,显示屏是ILI9320(320×240),中断的程序如下: void EXTI15_10_IRQHandler(void) { u16 i,j; u16 t1,t2; EXTI_Clear ...… 查看全部问答> |
|
各位好! 我们在对AD9361寄存器进行初始化配置过程中,出现247位寄存器指令读取失败的问题,导致初始化校准无法继续进行, 配置指令:{0x02,0x47,0x11}, //SPIRead   ...… 查看全部问答> |




