目录

  • 一、搭建STM32的开发环境
    • 1、安装jdk
    • 2、安装STM32 CubeMx
    • 3、安装MDK5
  • 二、利用工具实现LED的点亮
    • 1、选择MCU
    • 2、配置时钟
    • 3、设置引脚
    • 4、配置
  • 三、keil仿真调试
    • 1、编辑代码
    • 2、编译代码
    • 3、仿真运行
  • 四、烧录
  • 五、实验结果
  • 六、总结
  • 参考文献

一、搭建STM32的开发环境

1、安装jdk

STMCubeMX是Java实现的,需要安装jdk环境。
下载连接:https://www.oracle.com/java/technologies/javase-downloads.html
由于我之前安装过Java,所以就不演示了
在命令行窗口输入java -version,如果可以显示出版本号,就说明安装成功

2、安装STM32 CubeMx

  • 下载地址:https://www.st.com/en/development-tools/stm32cubemx.html
    选择自己系统对应的版本下载,我这里选择了第三个,Windows版本
  • 安装
    以管理员身份运行并安装 SetupSTM32CubeMX-4.27.0.exe

    在安装界面,点击next

    勾选"I accept the terms of this license agreement",接着选择Next

    选择安装位置(这里注意安装路径中不要出现中文)
    点击确定,创建这个安装文件夹

    默认选项,选择Next
    安装完成后,选择Next
    点击Done完成安装
  • 安装固件库
    运行STM32CubeMX,选择 Help->Manage 安装固件库

    根据自己的芯片类型选择相应的固件库,From Loca...是从本地安装(已经在本地下载了对应的固件库),Install now是通过网络下载,我这里选择的是第二种方法

    前面的框框变绿表示下载完成

3、安装MDK5

具体安装请参照下面链接:https://blog.csdn.net/qq_43279579/article/details/108880667
由于我已经安装,这里不做演示。

二、利用工具实现LED的点亮

1、选择MCU

打开STM32CubeMX,点击ACCESS TO MCU SELECTOR创建一个新的项目

在右上角根据自己的芯片信号选择对应的选项,我这里选择的是STM32F 103C8,然后单击右下角的item选中,再单击右上角的Start Proj...

2、配置时钟

然后,进行时钟配置
Sysrem Core中选择RCC,将HSE那一栏更改为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

点击Clock Configuration,勾选中间部分的PLLCLK

SYS一栏中将Debug勾选为Serial Wire

3、设置引脚

然后设置输出寄存器,点击GPIO那一栏点击相应的引脚,然后选中GPIO_output,将引脚设置为输出寄存器,我这里选择了3个,分别是PA7、PB、PB11作为LED的引脚

设置引脚内容为下图所示:

  • 在第一行设置初始化点平为低电平
  • 在第二行将输出模式设置为推挽模式
  • 在第三行不上拉并且不下拉
  • 设置输出速度为中等


将三个引脚分别设置一遍

4、配置

选择Project Manager一栏

  • 修改工程名称,我这里设置为LED
  • 修改工程路径,根据自己的情况
  • 修改编译器以及编译器的版本号,这里我修改为MDK-ARM V5


选择Code Generator一栏,选中Generate peripheral initialization...生成.c/.h文件

最后点击右上角GENERATE CODE 生成代码
生成成功,点击Open Project 打开工程

三、keil仿真调试

1、编辑代码

打开Application/User/Core文件夹中的main.c文件,找到int main(void)主函数

将下列的代码放入主函数的位置

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
HAL_Delay(500);//延时0.5s     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//PB2亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//PB2熄灯
HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_RESET);//PB11亮灯
HAL_Delay(500);//延时0.5s
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_SET);//PB11熄灯
HAL_Delay(500);//延时0.5s

HAL_GPIO_WritePin 写管脚函数
HAK_Delay 延时函数
GPIOx 管脚数
GPIO_PIN_x 管脚号
GPIO_BIT_RESET 表示管脚的状态为0

2、编译代码

点击右上角的build编译该代码
编译成功,生成了hex文件

3、仿真运行

使用KEIL的软件仿真的逻辑分析仪功能观察GPIO的波形,可以较为方便地定位到程序中的问题所在,进而解决问题。
(1)点击上方菜单栏中的options for target设置

(2)Target界面中,注意正确选择晶振大小,我使用的是8MHz的外部晶振。这个选项在软件仿真中很重要,如果选择错误,那么波形就会出错。不过这个参数只在软件仿真中起作用,当程序在硬件中运行并没有影响。

(3)在Debug界面中,勾选Use Simulator
其次是在Run to main()选项上打勾
然后修改图中第3个框和第4个框中的内容,将3中的Dialog.DLL修改为DARMSTM.DLL,将4中的Dialog.DLL修改为TARMSTM.DLL,这两步在STM32单片机中是固定的。
Parameter是跟你使用的单片机的型号有关的,这里我填pSTM32F103C8
按照以上步骤设置后点击OK,完成设置。
(4)点击Debug,进入调试

(5)选择逻辑分析仪

(6)选择要观察的引脚
点击Setup Logic Analyzer添加要观察的引脚

点击右上角添加引脚
输入PORTx.y,x表示GPIO口号,y表示选择的引脚号
Display Type选择Bit
在Color中选择颜色,为了区分不同的引脚。
设置完点击Close退出,就可以在后续的操作中观察到波形
每个引脚都重复一遍上述的操作
(7)运行程序

(8)观察波形
把光标移动到逻辑分析仪显示波形的区域,上下滚动滑轮,就可以放大和缩小波形。

这样直观地看到波形,点击鼠标将一个点设置为起始点,移动光标到另一个位置就可以看到很多信息,包括时间还有两点之间的时间差。

四、烧录

打开mcuisp
在程序文件那一栏,找到在上一节中保存工程的文件夹中的hex文件
点击开始编程
当右边窗口出现上述信息时,说明烧录成功。

五、实验结果

成功实现流水灯效果。

六、总结

在这次实验中我学会了如何搭建STMCubeMX环境以及基于HAL库实现LED闪烁,相较于上次的实验,对比可得,STMCubeMX可以大大简易我们的设计过程,为我们完成一个项目提供便利。在这次的实验中,在程序的编辑以及实现时候遇到了一些问题,通过询问同学的方式一一克服了它们,将实验与理论结合,对于我学习嵌入式有很大的帮助。

参考文献

https://blog.csdn.net/qq_54496810/article/details/120882256?spm=1001.2014.3001.5501

搭建STM32CubeMX环境并实现LED流水灯相关推荐

  1. 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...

  2. STM32Cubemx的安装及用寄存器HAL库完成LED流水灯程序

    目录 一.STM32CubeMx安装 (一)简介 (二)下载地址 1.官方下载地址 2.网盘下载地址 二.STM32CubeMX安装过程 三.HAL库安装 四.HAL库实现LED流水灯 (一)新建项目 ...

  3. 【stm32cubeMX】使用HAL库点亮LED流水灯

    stm32cubeMX使用HAL库点亮LED流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 五.实现 六.参考资料 1.安装STM32CubeMX 官网下 ...

  4. 基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和USART串口通讯程序,及其管脚的时序波形观察

    目录 一.使用HAL库完成LED流水灯 (一).用STM32CUBEMX生成工程文件 (二).用Keil仿真调试并生成hex文件 (三).用STM32串口烧录程序 (四).实物连接 二.使用HAL库完 ...

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

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

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

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

  7. 【嵌入式04】用寄存器HAL库完成LED流水灯程序

    目录 一.原理学习 1.寄存器映射原理 2.GPIO端口的初始化设置步骤 二.LED流水灯 1.程序设计思路 2.寄存器方式编程实现 3.HAL库编程实现 4.软件仿真 三.总结 四.参考链接 一.原 ...

  8. ​用寄存器HAL库完成LED流水灯程序

    STM32的地址映射.寄存器映射原理以及GPIO端口的初始化设置三步骤 ​(一)STM32F103系列芯片的地址映射及寄存器映射原理 1.STM32F103C8T6简要介绍 ● STM32F103C8 ...

  9. 用寄存器HAL库完成LED流水灯程序

    重庆交通大学信息科学与工程学院 <嵌入式系统开发>课程 作业报告(第4周) 班 级: 通信工程2001 姓名-学号 : 阎桂董-632007030622 实验项目名称: 作业题目 实验项目 ...

最新文章

  1. bae index.php,【微信公众平台开发】之一:入门与BAE3.0下操作
  2. Docker学习(一)Ubuntu版本的Docker安装和使用
  3. Python基础教程:迭代器
  4. Android背景色渐变效果(shape,gradient) (转)
  5. leetcode--983.最低票价
  6. oracle rman optimization,ORACLE rman设置
  7. mysql8.0新建用户登录_Mysql8.0 创建远程登陆账户
  8. 心理压力如何测试软件,心理压力测试 缓解压力有什么办法
  9. 关于||逻辑或运算符运算符
  10. Node.js学习笔记(五)——WebSocket
  11. java font 字体大小_java的字体的颜色,型号,大小的方法
  12. php 上传图片 裁剪,thinkphp_图片上传裁剪功能_已迁移
  13. 深度学习领域专有名词的理解与释义
  14. 程序报错误Illegal instruction的解决办法
  15. 我的学习路径与方法之机器学习导入篇
  16. js java 图片上传_spring(java,js,html) 截图上传图片实例详解
  17. PDF如何在线压缩?PDF在线压缩方法介绍
  18. 选择CRM时的注意事项
  19. wordpress创建_如何在WordPress中轻松创建优惠券网站
  20. (最优化理论与方法)第一章最优化简介-第三节:最优化基本概念

热门文章

  1. 高德地图(包含实时定位,线路导航,区域标记等)
  2. 龙芯处理器是否可以运行windows操作系统
  3. 哈夫曼编码和二进制编码_案例
  4. 沉吟放拨插弦中,整顿衣裳起敛容——python组合数据
  5. 安卓自定义相机录像并上传(详细参数设置)
  6. 消息中间件(一)分布式系统事务一致性解决方案大对比,谁最好使?(转)...
  7. SVN_一个开源的版本管理软件
  8. 《惢客创业日记》2019.09.09(周一)姚明的鼓励方式
  9. winscp + putty 免登录密码
  10. 线程中使用AttachCurrentThread得到JNIEnv