【HAL库】STM32CubeMX开发----STM32F407----LED灯实验
STM32CubeMX 下载和安装 详细教程
【HAL库】STM32CubeMX开发----STM32F407----目录
【HAL库】STM32F407----LED灯实验程序源码----点击下载
前言
本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。
LED灯 与 MCU引脚 对应关系如下:
LED灯 | MCU引脚 |
---|---|
LED1 | PE3 |
LED2 | PE4 |
LED3 | PE5 |
一、使用STM32CubeMX----新建工程
步骤1:打开 STM32CubeMX 软件
具体 STM32CubeMX 界面如下:
步骤2:选择 从MCU开始我的项目
步骤3:选择MCU芯片
我们本次实验选择 STM32F407VET6 芯片做 MCU。
进入工程编辑,具体界面如下:
步骤4:设置烧写方式为 SWD模式
这一步必须选择一种烧写方式,否则烧写一次程序后,芯片中就没法再次烧写程序了。需要硬件重启才可以重新烧写程序。
STM32烧写程序连接方式详解
步骤5:设置时钟源
设置外部晶振为芯片系统时钟源。
步骤6:LED灯 引脚配置
设置 PE3 为 输出引脚
三个LED灯引脚配置结果 如下:
设置 LED灯 引脚的 GPIO模式,设置界面如下:
设置结果如下:
步骤7:设置时钟
STM32F407 时钟最大频率为 168M,我的开发板是 25M 外部时钟源,具体时钟配置如下:
步骤8:项目编辑
步骤9:代码生成编辑
步骤10:点击 GENERATE CODE 生成代码
新建的工程,已经生成,接下来就是对工程代码的编辑。
二、使用keil5----编辑程序
想要使用keil5打开工程,需要电脑先安装 keil5编译环境,具体操作流程。
可以点击下方文章链接:Keil5编译环境搭建流程----STM32和GD32
步骤1:使用keil5打开工程
点击工程文件中的MDK-ARM 文件
打开keil5工程
步骤2:用户代码 编辑位置
用户代码 要写在 USER xxxx BEGIN xxx 和 USER xxxx END xxx 之间。
这样下次使用 STM32CubeMX 重新生成代码后,自己写的代码不会被删除。
步骤3:查看生成代码
GPIO初始化程序生成如下:
步骤4:使用到的HAL库函数
/***@功能:GPIO引脚输出配置*@参数1:指定GPIO外设---GPIOA、GPIOB、GPIOC...*@参数2:指定GPIO外设的引脚端口号---GPIO_PIN_0、GPIO_PIN_1。。。*@参数3:指定GPIO引脚输出模式---GPIO_PIN_RESET-置低,GPIO_PIN_SET-置高*@返回值:无*/
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
举例说明:
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //PE3置高
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_RESET); //PE3置低
步骤5:编辑程序 实现跑马灯实验
具体编辑如下:
具体代码如下:
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_RESET); //PE3置低---LED1亮
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4, GPIO_PIN_SET); //PE4置高---LED2灭
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET); //PE5置高---LED3灭
HAL_Delay(200);//延时200ms
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //PE3置高---LED1灭
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4, GPIO_PIN_RESET); //PE4置低---LED2亮
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET); //PE5置高---LED3灭
HAL_Delay(200);//延时200ms
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //PE3置高---LED1灭
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4, GPIO_PIN_SET); //PE4置高---LED2灭
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET); //PE5置低---LED3亮
HAL_Delay(200);//延时200ms
步骤6:编译程序,然后烧写程序到开发板
具体烧写操作步骤,可以查看以下文章,有详细的烧写说明。
文章链接:
烧写程序(STM32+GD32):ST-link V2调试下载器实物和连接方式
烧写程序(STM32+GD32):ST-link驱动下载和安装
烧写程序(STM32+GD32):Keil5使用ST-link下载程序
资源链接:ST-link驱动链接----点击下载
步骤7:实现结果
LED1、LED2、LED3依次闪烁,实验成功!
【HAL库】STM32CubeMX开发----STM32F407----LED灯实验相关推荐
- STM32F103C8T6基础开发教程(HAL库)—开发环境配置
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
- 驱动开发指南 第八章 汇编LED灯实验
<I.MX6U 嵌入式 x Linux 驱动开发指南 V1.6 6>第八章 汇编LED灯实验 正点原子[第二期]手把手教你学Linux之ARM(MX6U)裸机篇 视频 选集 时间 P6 第 ...
- 【正点原子FPGA连载】第十一章 触摸按键控制LED灯实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- STM32F1 HAL库实战开发——【实验 4 驱动继电器实验】
STM32F1 HAL库实战开发 提示:这里是 STM32F1 HAL 库实战开发的实验案例之一 实验 4 驱动继电器实验 STM32F1 HAL库实战开发 GPIO 输出 一.继电器引脚电平输出 二 ...
- stm32ccu6基于HAl库的开发
目录 硬件情况: pwm: 代码使用方式: 模式一: 模式二: 感谢声明: 硬件情况: 淘宝上面20几块绿色盗版开发板(支持正版),st_linkV2烧录器 然后是导师的要求: 我们已经买了这个板,准 ...
- 【HAL库】HAL库STM32cubemx快速使用
文章目录 整体框图 一.基础工程 1 新建工程 2 配置RCC 3 配置SYS 4 工程设置 5 生成代码 6 keil设置下载&复位 二.必备外设 1 目录规范 2 LED 2 RTC 3 ...
- 第一节:C#工业控制编程基础--点亮LED灯实验
第一节:C#工业控制编程基础–点亮LED灯实验 文章目录 第一节:C#工业控制编程基础--点亮LED灯实验 一.实验目的: C#入门基础学习. 二.实验内容: 用C#控制LED的亮灭. 三.实验步骤: ...
- 《STM32从零开始学习历程》——USART串口通讯实验篇2——指令控制LED灯实验
<STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇2--指令控制LED灯实验 本实验是在<USART串口通讯实验篇1--中断接收与发送>的基础上 ...
- led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验
1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...
- 【STM32】HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)
前言: 今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使 ...
最新文章
- 追溯Ceres-Solver中CostFunction类方法
- 鸿合怎么删掉linux6_鸿合电子白板怎么校准?鸿合电子白板校准的方法
- 让我变得开朗了很多哦
- ES6 的解构赋值前每次都创建一个对象吗?会加重 GC 的负担吗?
- STL 中的容器们(四)
- Android 安全 (一)
- 微信公众号-自定义菜单的创建
- 阿里云解决方案架构师徐翔:云上安全建设实战
- iPhone越狱cydia源大全
- 建设智慧城市,需要解决哪些问题?
- Spring boot 项目中dcm文件转jpg文件
- 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用
- Apache网页与安全优化(网页压缩、网页缓存、隐藏版本信息、网页图片防盗链)——理论+实验!超详细
- 用c语言求20以内的勾股数,C语言求勾股数代码及解析
- 背包问题(最大装载价值)
- GitLab-Runner 从安装到配置到入门
- python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书
- 对JSON中的key进行驼峰和下划线格式的相互转换
- LVS(DR)+Keepalive高可用+Zabbix监控脑裂
- 青少年编程-Python之扑克牌第十幕
热门文章
- 研学堂|基于MCC800P运动控制卡的关节型机械手简易控制
- 三菱GX Developer 了解总结
- Porting anisotropic image segmentation on G-API
- 使用Python把一堆图片排序后转换成PDF,最终得到一人之下漫画pdf
- [青少年CTF]Crypto—Easy by 周末
- Centos parted分区超过2TB硬盘-分区格式化
- Python答优大作业[名片管理系统(完整代码)]
- 示波器的触发设置详谈
- 压力开关常见故障原因及排除方法
- 【产品推荐】黑臭水质监测站——太阳能供电系统