STM32F4XX设备指示灯(工程文件+仿真图+视频)

2023-11-08 19:20

本文主要是介绍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设备指示灯(工程文件+仿真图+视频)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371952

相关文章

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

MyBatisX逆向工程的实现示例

《MyBatisX逆向工程的实现示例》本文主要介绍了MyBatisX逆向工程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录逆向工程准备好数据库、表安装MyBATisX插件项目连接数据库引入依赖pom.XML生成实体类、

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优