stm32cubeMX使用HAL库点亮LED流水灯

  • 1.安装STM32CubeMX
  • 2.安装HAL库
  • 3.新建项目
  • 4.keil仿真调试
  • 五、实现
  • 六、参考资料

1.安装STM32CubeMX

官网下载(官网下载需要绑定邮箱或者注册)

也可链接:点击链接使用百度网盘下载
提取码:8520
(1)管理员身份运行安装程序,点击next:

(2)点击"I accept the terms of this license agreement",接着选择Next:

(3)勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等:

(4)选择安装位置,默认位置是安装在C盘中(注意:安装位置不要出现中文):

(5)直接点NEXT,其他不用设置 之后开始安装:

(6)安装完成,点Done退出:


2.安装HAL库

STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。
和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;

(1)打开安装好的STMCubeMX

(2)点击HELP->Manage embedded software packages :

(3)会跳出来一个选择型号界面 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:

3.新建项目

(1)回到STMCubeMX的主界面,创建新项目:

(2)在part name里选择自己的芯片,点击信息栏中的具体芯片信息选中,点击start project:

(3)点击system core,进入SYS,在debug下选择serial wire:

(4)配置时钟,进入上面的rcc,有两个时钟,一个是hse和lse,我们要用是GPIO接口,而这些接口都在APB2里:

接下来观察时钟架构,APB2总线的时钟由hse控制,同时在这个界面得把PLLCLK右边选上:

(5)将hse那里设为Crystal/Ceramic Resonator:

(6)接下来就是点击相应的引脚设置输出寄存器了,就是output那一项,一共选了三个,是PA5,PB9,PC15:

(7)点击project manager,配置好自己的路径和项目名,然后IDE那项改为MDK-ARM:

(8)进入 code generate界面,选择生成初始化.c/.h文件,后面点击generate code,选择open project,然后就到KEIL5了:

4.keil仿真调试

(1)打开main.c文件,滑倒主函数那一部分:

(2)将下面代码放入主函数中(替代里面的内容)

SystemClock_Config();//系统时钟初始化MX_GPIO_Init();//gpio初始化while (1){      HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//PA4亮灯HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);//PC15熄灯HAL_Delay(1000);//延时1sHAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA4熄灯HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);//PC15熄灯HAL_Delay(1000);//延时1sHAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA4熄灯HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);//PC15亮灯HAL_Delay(1000);//延时1s}

(3)观察GPIO端口的输出波形
(1)Target界面中,选择跟正确的晶振大小,我使用的是8MHz的外部晶振。这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确。

(2)Debug页的设置:

(3)点击Debug,进入调试界面:

(4)选择逻辑分析仪:

(5)选择要观察的引脚:
①点击Setup Logic Analyzer

②添加要观察的引脚:

(6)观察波形:

引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1s左右。

在单独使用keil写流水灯的时候,自己要写的相关语句比较多,用STMCubeMX+keil+hal库实现点灯比较容易。

五、实现

将文件编辑为hex后下板,连接红黄绿三色灯

QQ视频20221010220746

六、参考资料

【STM32】STM32 CubeMx使用教程一–安装教程
使用STMCubeMX生成代码(使用hal库)实现流水灯

【stm32cubeMX】使用HAL库点亮LED流水灯相关推荐

  1. stm32cubeMX使用HAL库点亮LED流水灯

    系列文章目录 文章目录 系列文章目录 一.实验工具 二.STM32CubeMX生成代码使用HAL库点亮流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 三. ...

  2. 【嵌入式知识07】借助stm32CubeMX,使用STM32F103C8T6点亮LED流水灯

    本文目录 一.简述 二.STM32CubeMX简介 1.利用CubeMX新建工程点亮LED灯 1)前期准备 2)新建工程 2.界面讲解 3.配置引脚 4.时钟源配置 5.工程管理 三.点亮LED 1. ...

  3. STM32CubeMX基于HAL库点亮LED灯

    开发环境:Windows 软件: 1.STM32CubeMX 6.3.0 2.MDK 5.14 一.cubeMX的基本配置 1.选择MCU 2.配置时钟 查看电路图,8MHz的高速外部晶振接到 OSC ...

  4. GPIO端口初始化设置,STM32F103点亮LED流水灯过程

    文章目录 一.STM32F103系列芯片地址映射和寄存器映射原理 1.什么是寄存器 2.地址映射和寄存器映射 3.寄存器地址查找 二.GPIO端口初始化设置 1.GPIO简介 2.配置时钟 3.输入输 ...

  5. STM32F03寄存器方式点亮LED流水灯

    STM32F03寄存器方式点亮LED流水灯 文章目录 STM32F03寄存器方式点亮LED流水灯 一.题目内容 二.STM32F03系列芯片的地址映射和寄存器映射映射原理:了解GPIO端口的初始化设置 ...

  6. STM32F103C8T6以寄存器方式借助面包板搭建电路点亮LED流水灯详解

    文章目录 一.寄存器原理 1.什么是寄存器 2.如何访问寄存器 二.GPIO端口的初始化设置 1.时钟配置 (1)找到时钟使能寄存器映射基地址 (2)找到端口偏移地址以及对应端口所在位置 (3)使能对 ...

  7. STM32F103寄存器方式点亮LED流水灯

    实验要求:以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB.GPIOC.GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒.1)写出 ...

  8. 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解

    文章目录 一.题目简述 二.简述:初始化GPIO,点亮LED灯 三.工程文件模板的建立 四.使用寄存器点亮LED灯--代码部分 1.硬件连接设计 2.打开之前建立的工程模板 3.代码编写 4.硬件连接 ...

  9. 点亮led流水灯c语言程序,用数组的指针控制LED流水灯--C语言编程

    #include/************************************************* 函数功能:延时约150ms (3*200*250=150 000μs=150ms ...

最新文章

  1. ZooKeeper基础学习
  2. 社交系统/社群系统ThinkSNS+ alpha.2 版本发布!
  3. Python脱产8期 Day09 2019/4/23
  4. python 合并重叠数据
  5. boost::adjacent_find相关的测试程序
  6. java基础----Date、DateFormat
  7. 苹果原壁纸高清_周易壁纸 | 八卦图阵高清壁纸
  8. mvc html validator,ASP.NET MVC实现Validation验证器扩展
  9. Delphi-IOCP学习笔记九======性能测试和IOCP源码下载5000个连接数
  10. android dialogfragment 简单,使用DialogFragment
  11. java String 常用方法集合
  12. 分子重构技术_4. 串珠模型重构
  13. 谁抢光了你的火车票?
  14. latex里图片大小如何调整_怎样用latex修改插入图形的大小,使图形大小一致。...
  15. 教你将PDF转换Word的方法
  16. Apache Log4j 2.0-rc1 发布
  17. Ubuntu / Windows 查看域名系统 (Domain Name System,DNS)
  18. Lanczos插值,最邻近插值,双线性二次插值,三次插值
  19. linux ppp用户管理,linux下ppp拨号上网
  20. 微信小程序使用 setInterval 制作计时器后台延迟问题

热门文章

  1. 解决Python调试OSError: [WinError 193] %1 不是有效的 Win32 应用程序
  2. 一文概览2D人体姿态估计
  3. 定位教程6---上下相机
  4. 设置网站页面标题的注意事项
  5. 用scratch编写游戏“小蝌蚪成长”中使背景大于480*360
  6. 诊断数据库ODX—数据库框架(基于ISO22901详解)
  7. HDU 4147 KFC -Z+W
  8. 10、面试官对于分布式搜索引擎的4个连环炮
  9. Indy:Connection Closed Gracefully
  10. C语言strtok函数的用法