实例介绍
【实例简介】
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
{
;
}
}
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论