本文主要是介绍STM32F4XX设备指示灯(工程文件+仿真图+视频),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开发语言:C/C++
实例大小:9.09M
实例类别:嵌入式开发
【实例简介】
KEY1-4分别控制LED1-4亮灭,芯片使用的是STM32F4XXX
【实例截图】
【源码目录】
STM32F4设备指示灯
├── 嵌入式作业4Keil工程文件
│ ├── CORE
│ │ ├── core_cm4.h
│ │ ├── core_cm4_simd.h
│ │ ├── core_cmFunc.h
│ │ ├── core_cmInstr.h
│ │ └── startup_stm32f40_41xxx.s
│ ├── FWLIB
│ │ ├── inc
│ │ │ ├── misc.h
│ │ │ ├── stm32f4xx_adc.h
│ │ │ ├── stm32f4xx_can.h
│ │ │ ├── stm32f4xx_crc.h
│ │ │ ├── stm32f4xx_cryp.h
│ │ │ ├── stm32f4xx_dac.h
│ │ │ ├── stm32f4xx_dbgmcu.h
│ │ │ ├── stm32f4xx_dcmi.h
│ │ │ ├── stm32f4xx_dma.h
│ │ │ ├── stm32f4xx_dma2d.h
│ │ │ ├── stm32f4xx_exti.h
│ │ │ ├── stm32f4xx_flash.h
│ │ │ ├── stm32f4xx_flash_ramfunc.h
│ │ │ ├── stm32f4xx_fmc.h
│ │ │ ├── stm32f4xx_fsmc.h
│ │ │ ├── stm32f4xx_gpio.h
│ │ │ ├── stm32f4xx_hash.h
│ │ │ ├── stm32f4xx_i2c.h
│ │ │ ├── stm32f4xx_iwdg.h
│ │ │ ├── stm32f4xx_ltdc.h
│ │ │ ├── stm32f4xx_pwr.h
│ │ │ ├── stm32f4xx_rcc.h
│ │ │ ├── stm32f4xx_rng.h
│ │ │ ├── stm32f4xx_rtc.h
│ │ │ ├── stm32f4xx_sai.h
│ │ │ ├── stm32f4xx_sdio.h
│ │ │ ├── stm32f4xx_spi.h
│ │ │ ├── stm32f4xx_syscfg.h
│ │ │ ├── stm32f4xx_tim.h
│ │ │ ├── stm32f4xx_usart.h
│ │ │ └── stm32f4xx_wwdg.h
│ │ └── src
│ │ ├── misc.c
│ │ ├── stm32f4xx_adc.c
│ │ ├── stm32f4xx_can.c
│ │ ├── stm32f4xx_crc.c
│ │ ├── stm32f4xx_cryp.c
│ │ ├── stm32f4xx_cryp_aes.c
│ │ ├── stm32f4xx_cryp_des.c
│ │ ├── stm32f4xx_cryp_tdes.c
│ │ ├── stm32f4xx_dac.c
│ │ ├── stm32f4xx_dbgmcu.c
│ │ ├── stm32f4xx_dcmi.c
│ │ ├── stm32f4xx_dma.c
│ │ ├── stm32f4xx_dma2d.c
│ │ ├── stm32f4xx_exti.c
│ │ ├── stm32f4xx_flash.c
│ │ ├── stm32f4xx_flash_ramfunc.c
│ │ ├── stm32f4xx_fmc.c
│ │ ├── stm32f4xx_fsmc.c
│ │ ├── stm32f4xx_gpio.c
│ │ ├── stm32f4xx_hash.c
│ │ ├── stm32f4xx_hash_md5.c
│ │ ├── stm32f4xx_hash_sha1.c
│ │ ├── stm32f4xx_i2c.c
│ │ ├── stm32f4xx_iwdg.c
│ │ ├── stm32f4xx_ltdc.c
│ │ ├── stm32f4xx_pwr.c
│ │ ├── stm32f4xx_rcc.c
│ │ ├── stm32f4xx_rng.c
│ │ ├── stm32f4xx_rtc.c
│ │ ├── stm32f4xx_sai.c
│ │ ├── stm32f4xx_sdio.c
│ │ ├── stm32f4xx_spi.c
│ │ ├── stm32f4xx_syscfg.c
│ │ ├── stm32f4xx_tim.c
│ │ ├── stm32f4xx_usart.c
│ │ └── stm32f4xx_wwdg.c
│ ├── HARDWARE
│ │ ├── KEY
│ │ │ ├── key.c
│ │ │ └── key.h
│ │ └── LED
│ │ ├── led.c
│ │ └── led.h
│ ├── OBJ
│ │ ├── HEX
│ │ │ ├── KEY-LED.axf
│ │ │ ├── KEY-LED.build_log.htm
│ │ │ ├── KEY-LED.hex
│ │ │ ├── KEY-LED.hex.asm
│ │ │ ├── KEY-LED.htm
│ │ │ ├── KEY-LED.lnp
│ │ │ ├── KEY-LED.sct
│ │ │ ├── LED.axf
│ │ │ ├── LED.build_log.htm
│ │ │ ├── LED.hex.asm
│ │ │ ├── LED.htm
│ │ │ ├── LED.lnp
│ │ │ ├── LED.sct
│ │ │ ├── delay.crf
│ │ │ ├── delay.d
│ │ │ ├── delay.o
│ │ │ ├── key.crf
│ │ │ ├── key.d
│ │ │ ├── key.o
│ │ │ ├── led.crf
│ │ │ ├── led.d
│ │ │ ├── led.o
│ │ │ ├── main.crf
│ │ │ ├── main.d
│ │ │ ├── main.o
│ │ │ ├── misc.crf
│ │ │ ├── misc.d
│ │ │ ├── misc.o
│ │ │ ├── startup_stm32f40_41xxx.d
│ │ │ ├── startup_stm32f40_41xxx.o
│ │ │ ├── stm32f4xx_gpio.crf
│ │ │ ├── stm32f4xx_gpio.d
│ │ │ ├── stm32f4xx_gpio.o
│ │ │ ├── stm32f4xx_it.crf
│ │ │ ├── stm32f4xx_it.d
│ │ │ ├── stm32f4xx_it.o
│ │ │ ├── stm32f4xx_rcc.crf
│ │ │ ├── stm32f4xx_rcc.d
│ │ │ ├── stm32f4xx_rcc.o
│ │ │ ├── stm32f4xx_syscfg.crf
│ │ │ ├── stm32f4xx_syscfg.d
│ │ │ ├── stm32f4xx_syscfg.o
│ │ │ ├── stm32f4xx_usart.crf
│ │ │ ├── stm32f4xx_usart.d
│ │ │ ├── stm32f4xx_usart.o
│ │ │ ├── sys.crf
│ │ │ ├── sys.d
│ │ │ ├── sys.o
│ │ │ ├── system_stm32f4xx.crf
│ │ │ ├── system_stm32f4xx.d
│ │ │ ├── system_stm32f4xx.o
│ │ │ ├── usart.crf
│ │ │ ├── usart.d
│ │ │ └── usart.o
│ │ ├── KEY-LED.map
│ │ ├── LED.build_log.htm
│ │ ├── LED.hex
│ │ ├── LED.map
│ │ └── startup_stm32f40_41xxx.lst
│ ├── SYSTEM
│ │ ├── delay
│ │ │ ├── delay.c
│ │ │ └── delay.h
│ │ ├── sys
│ │ │ ├── sys.c
│ │ │ └── sys.h
│ │ └── usart
│ │ ├── usart.c
│ │ └── usart.h
│ ├── USER
│ │ ├── DebugConfig
│ │ │ ├── LED_STM32F407ZG.dbgconf
│ │ │ └── Template_STM32F407ZG.dbgconf
│ │ ├── JLinkSettings.ini
│ │ ├── KEY-LED.uvguix.15814
│ │ ├── KEY-LED.uvguix_15814.bak
│ │ ├── KEY-LED.uvoptx
│ │ ├── KEY-LED.uvprojx
│ │ ├── KEY-LED_KEY-LED.dep
│ │ ├── KEY-LED_uvoptx.bak
│ │ ├── KEY-LED_uvprojx.bak
│ │ ├── LED.uvguix.15814
│ │ ├── LED.uvguix.Administrator
│ │ ├── LED.uvguix_15814.bak
│ │ ├── LED.uvoptx
│ │ ├── LED_LED.dep
│ │ ├── LED_uvoptx.bak
│ │ ├── LED_uvprojx.bak
│ │ ├── main.c
│ │ ├── stm32f4xx.h
│ │ ├── stm32f4xx_conf.h
│ │ ├── stm32f4xx_it.c
│ │ ├── stm32f4xx_it.h
│ │ ├── system_stm32f4xx.c
│ │ └── system_stm32f4xx.h
│ ├── keilkilll.bat
│ └── readme.txt
├── 嵌入式作业4proteus电路仿真图
│ ├── Backup Of 作业4_设备指示灯.pdsbak
│ ├── Last Loaded 作业4_设备指示灯.pdsbak
│ ├── 作业4_设备指示灯.pdsprj
│ └── 作业4_设备指示灯.pdsprj.DESKTOP-0DHRF3L.15814.workspace
└── 嵌入式作业4调试视频.mp4
17 directories, 172 files
【核心代码】
int main(void)
{
int key1 = 1;//标志key1
int key2 = 1;//标志key2
int key3 = 1;//标志key3
int key4 = 1;//标志key4
delay_init(168);//初始化延时函数
LED_Init(); //LED初始化
KEY_Init(); //KEY按键初始化
while(1)
{
//KEY1控制D1点亮和熄灭
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) == 0)
//判断KEY1是否被按下
{
delay_ms(90);
//延时消抖
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) == 0)//判断KEY1是否被按下
{
key1 = !key1;
//标志key1取反
if(!key1)
{
GPIO_ResetBits(GPIOE,GPIO_Pin_9);
//点亮D1
GPIO_SetBits(GPIOE,GPIO_Pin_10);
//熄灭D2
GPIO_SetBits(GPIOE,GPIO_Pin_11);
//熄灭D3
GPIO_SetBits(GPIOE,GPIO_Pin_12);
//熄灭D4
}
else
{
GPIO_SetBits(GPIOE,GPIO_Pin_9);
//熄灭D1
}
}
else
{
;
}
}
//KEY2控制D2点亮和熄灭
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) == 0) //判断KEY2是否被按下
{
delay_ms(90);
//延时消抖
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) == 0)//判断KEY2是否被按下
{
key2 = !key2;
//标志key2取反
if(!key2)
{
GPIO_ResetBits(GPIOE,GPIO_Pin_10);
//点亮D2
GPIO_SetBits(GPIOE,GPIO_Pin_9);
//熄灭D1
GPIO_SetBits(GPIOE,GPIO_Pin_11);
//熄灭D3
GPIO_SetBits(GPIOE,GPIO_Pin_12);
//熄灭D4
}
else
{
GPIO_SetBits(GPIOE,GPIO_Pin_10);
//熄灭D2
}
}
else
{
;
}
}
//KEY3控制D3点亮和熄灭
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2) == 0) //判断KEY3是否被按下
{
delay_ms(90);
//延时消抖
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2) == 0)//判断KEY3是否被按下
{
key3 = !key3;
//标志key3取反
if(!key3)
{
GPIO_ResetBits(GPIOE,GPIO_Pin_11);
//点亮D3
GPIO_SetBits(GPIOE,GPIO_Pin_9);
//熄灭D1
GPIO_SetBits(GPIOE,GPIO_Pin_10);
//熄灭D2
GPIO_SetBits(GPIOE,GPIO_Pin_12);
//熄灭D4
}
else
{
GPIO_SetBits(GPIOE,GPIO_Pin_11);
//熄灭D3
}
}
else
{
;
}
}
//KEY4控制D4点亮和熄灭
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3) == 0) //判断KEY4是否被按下
{
delay_ms(90);
//延时消抖
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3) == 0)//判断KEY4是否被按下
{
key4 = !key4;
//标志key4取反
if(!key4)
{
GPIO_ResetBits(GPIOE,GPIO_Pin_12);//点亮D4
GPIO_SetBits(GPIOE,GPIO_Pin_9);
//熄灭D1
GPIO_SetBits(GPIOE,GPIO_Pin_10);
//熄灭D2
GPIO_SetBits(GPIOE,GPIO_Pin_11);
//熄灭D3
}
else
{
GPIO_SetBits(GPIOE,GPIO_Pin_12);
//熄灭D4
}
}
else
{
;
}
}
//无操作
else
{
;
}
}
}
内容转载自网站: 阁楼网源 -最干净的资源网站
这篇关于STM32F4XX设备指示灯(工程文件+仿真图+视频)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!