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 xxxUSER 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灯实验相关推荐

  1. STM32F103C8T6基础开发教程(HAL库)—开发环境配置

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  2. 驱动开发指南 第八章 汇编LED灯实验

    <I.MX6U 嵌入式 x Linux 驱动开发指南 V1.6 6>第八章 汇编LED灯实验 正点原子[第二期]手把手教你学Linux之ARM(MX6U)裸机篇 视频 选集 时间 P6 第 ...

  3. 【正点原子FPGA连载】第十一章 触摸按键控制LED灯实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  4. STM32F1 HAL库实战开发——【实验 4 驱动继电器实验】

    STM32F1 HAL库实战开发 提示:这里是 STM32F1 HAL 库实战开发的实验案例之一 实验 4 驱动继电器实验 STM32F1 HAL库实战开发 GPIO 输出 一.继电器引脚电平输出 二 ...

  5. stm32ccu6基于HAl库的开发

    目录 硬件情况: pwm: 代码使用方式: 模式一: 模式二: 感谢声明: 硬件情况: 淘宝上面20几块绿色盗版开发板(支持正版),st_linkV2烧录器 然后是导师的要求: 我们已经买了这个板,准 ...

  6. 【HAL库】HAL库STM32cubemx快速使用

    文章目录 整体框图 一.基础工程 1 新建工程 2 配置RCC 3 配置SYS 4 工程设置 5 生成代码 6 keil设置下载&复位 二.必备外设 1 目录规范 2 LED 2 RTC 3 ...

  7. 第一节:C#工业控制编程基础--点亮LED灯实验

    第一节:C#工业控制编程基础–点亮LED灯实验 文章目录 第一节:C#工业控制编程基础--点亮LED灯实验 一.实验目的: C#入门基础学习. 二.实验内容: 用C#控制LED的亮灭. 三.实验步骤: ...

  8. 《STM32从零开始学习历程》——USART串口通讯实验篇2——指令控制LED灯实验

    <STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇2--指令控制LED灯实验 本实验是在<USART串口通讯实验篇1--中断接收与发送>的基础上 ...

  9. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  10. 【STM32】HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)

    前言:   今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使 ...

最新文章

  1. 追溯Ceres-Solver中CostFunction类方法
  2. 鸿合怎么删掉linux6_鸿合电子白板怎么校准?鸿合电子白板校准的方法
  3. 让我变得开朗了很多哦
  4. ES6 的解构赋值前每次都创建一个对象吗?会加重 GC 的负担吗?
  5. STL 中的容器们(四)
  6. Android 安全 (一)
  7. 微信公众号-自定义菜单的创建
  8. 阿里云解决方案架构师徐翔:云上安全建设实战
  9. iPhone越狱cydia源大全
  10. 建设智慧城市,需要解决哪些问题?
  11. Spring boot 项目中dcm文件转jpg文件
  12. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用
  13. Apache网页与安全优化(网页压缩、网页缓存、隐藏版本信息、网页图片防盗链)——理论+实验!超详细
  14. 用c语言求20以内的勾股数,C语言求勾股数代码及解析
  15. 背包问题(最大装载价值)
  16. GitLab-Runner 从安装到配置到入门
  17. python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书
  18. 对JSON中的key进行驼峰和下划线格式的相互转换
  19. LVS(DR)+Keepalive高可用+Zabbix监控脑裂
  20. 青少年编程-Python之扑克牌第十幕

热门文章

  1. 研学堂|基于MCC800P运­­­动控制卡的关节型机械手简易控制
  2. 三菱GX Developer 了解总结
  3. Porting anisotropic image segmentation on G-API
  4. 使用Python把一堆图片排序后转换成PDF,最终得到一人之下漫画pdf
  5. [青少年CTF]Crypto—Easy by 周末
  6. Centos parted分区超过2TB硬盘-分区格式化
  7. Python答优大作业[名片管理系统(完整代码)]
  8. 示波器的触发设置详谈
  9. 压力开关常见故障原因及排除方法
  10. 【产品推荐】黑臭水质监测站——太阳能供电系统