你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32CubeMX软件开发教程——LED流水灯

[复制链接]
STMCU小助手 发布时间:2020-12-21 14:02
STM32CubeMX软件开发教程——LED流水灯
    STM32CubeMX是一种图形化工具,可以通过逐步的过程非常轻松地配置STM32微控制器和微处理器,并为ARM Cortex-M内核生成相应的初始化C代码或ARM Cortex-A内核生成部分Linux设备树。
1,使用STM32CubeMX软件创建工程文件
双击打开STM32CubeMX软件,在STM32CubeMX软件Home界面,点击File->New Project创建新工程。
4.1.png
在弹出的New Project窗口,点击MCU/MPU Selector进入芯片型号的选择界面,Part Number选择STM32F103ZE,也可以直接输入stm32f103ze(大小写均可),然后在MCUs/MPUs List下选择型号为STM32F103ZETx,封装为LQFP144的MCU,接着点击Start Project。
4.2.png
在工程的编辑配置界面,点击Pinout & Configuration,进入STM32F103ZETx芯片外设的配置界面,左侧为芯片外设的配置选项,右侧为芯片的引脚预览界面和系统预览界面。
4.3.png
2,STM32开发板硬件电路分析
使用STM32CubeMX软件配置LED流水灯工程,需要对应的硬件电路相互配合。本例程选用朗译电子科技(http://langyidianzi.com/)的七星虫M3S开发板,M3S开发板的主控MCU为STM32F103ZET6,MCU外部高速晶振为8.0MHz,外部低速晶振为32.768KHz。主控MCU通过PB5、PE5控制两个LED灯。
4.4.jpg
通过对LED灯控制电路的分析,当GPIO口为低电平时,LED灯点亮,当GPIO口为高电平时,LED灯熄灭。
4.5.png
3,使用STM32CubeMX软件配置LED流水灯工程
进入STM32CubeMX软件的工程编辑配置界面,点击System Core->SYS,软件自动打开SYS Mode and Configuration界面,若该界面未打开,点击配置菜单栏右侧的三角形图标。在SYS Mode界面下,Debug选择JTAG(5pins),其他保持默认即可。在右侧芯片引脚预览界面,配置为JTAG的5个引脚变为绿色。
4.6.png
点击System Core->RCC,进行RCC时钟配置,在RCC Mode配置界面下,High Speed Clock(HSE)选择Crystal/Ceramic Resonator,Low Speed Clock(LSE)选择Disable,其他保持默认即可。在右侧芯片引脚预览界面,配置为OSC_IN和OSC_OUT的2个引脚变为绿色。
4.7.png
点击Clock Configuration菜单,进入系统时钟配置界面,外部高速时钟为8MHz,PLL Source Mux选择HSE,使用外部晶振为系统提供时钟;*PLLMul选择x4,也可以选择其他;System Clock Mux选择PLLCLK,使用PLLCLK为系统提供时钟;AHB Prescaler、APB1 Prescaler、APB2 Prescaler均选择/1,其他保持默认即可。
4.8.png
系统时钟配置好后,点击Pinout & Configuration菜单,切换到芯片外设的配置界面,在右侧芯片引脚预览界面,点击PB5和PE5引脚,将它们均配置为GPIO_Output。
4.9.png
点击System Core->GPIO,进行GPIO初始化配置,在GPIO Configuration配置界面下,点击选择PB5,打开PB5 Configuration配置界面,GPIO output level选择Low,GPIO mode选择Output Push Pull,GPIO Pull-up/ Pull-down选择No pull-up and no pull-down,Maximum output speed选择Low,User Label默认不填。同理再选择PE5进行类似的配置,PE5的GPIO output level选择High,其他保持与PB5配置相同。
4.10.png
GPIO配置好后,点击Project Manager菜单,切换到工程管理界面,点击Project进入工程设置界面,在Project Settings界面下,Project Name填写为CubeMX_LED,Project Location选择工程存放的路径,Toolchain Folder Location会根据Project Name和Project Location自动生成路径,Toolchain/IDE选择MDK-ARM,Min Version选择V5.27,如果使用的MDK-ARM版本较低,可根据需求选择V5或V4。其他保持默认即可。
4.11.png
点击Code Generator进入代码生成界面,勾选Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral,其他保持默认,然后点击GENERATE CODE。
4.12.png
STM32CubeMX软件会根据以上配置,自动生成LED流水灯的工程文件。
4.13.png
工程文件生成结束后,弹出The Code is successfully generated under E:\CubeMX_code\CubeMX_LED,点击Open Folder。
4.14.png
打开工程文件所在的目录,可以看到如下几个文件和文件夹。用户编写的代码和头文件存放在Core文件夹,系统文件和HAL库存放在Drivers文件夹,工程文件在MDK-ARM文件夹,至此STM32CubeMX软件配置LED流水灯工程到此结束。
4.16.png
4,使用KEIL软件编写LED流水灯代码并编译工程
进入MDK-ARM文件夹,使用keil软件打开CubeMX_LED.uvprojx工程文件。点击Build编译CubeMX_LED工程,编译完成后,在Build Output窗口下显示0 Error(s),0 Warning(s),说明CubeMX_LED工程的代码无误。
4.17.png
打开stm32f1xx_hal_gpio.h文件,查看GPIO操作函数。选择HAL_GPIO_TogglePin()函数来实现IO口电平翻转。
4..png
打开stm32f1xx_hal.h文件,查找延时函数。选择HAL_Delay()函数来实现毫秒延时。
4.18.png
在main.c文件中添加如图所示代码,实现PB5电平翻转后,延时300ms,接着PE5电平翻转,再延时300ms,然后再重复以上过程,从而实现LED流水灯功能。保存修改后main.c文件,然后点击Build编译CubeMX_LED工程。编译完成后,在Build Output窗口下显示0 Error(s),0 Warning(s),说明修改后的代码无误。注意在While循环里编写用户代码时,需要将代码写在“USER CODE BEGIN WHILE”和“USER CODE END WHILE”之间,否则再次使用STM32CubeMX软件生成该工程的代码时,不会保存之前编写的用户代码。
4.19.png
5,程序下载到开发板并验证
将J-Link仿真器的下载口连接到M3S开发板,另一端通过USB线连接到主机,配置好Keil软件的下载选项后,点击Download程序下载按钮,编译好的LED流水灯程序开始下载,Keil软件左下角显示程序下载的进度条。(Keil软件下载程序的配置将在其他文章中详细介绍,本文不再赘述)。
4.21.png
当下载进度条结束,且在Build Output窗口显示Flash Load Finish at 18:16:19,表示程序在18:16:19下载完成。
4.20.png
按下M3S开发板的复位键,LED流水灯程序开始执行,两个LED灯循环点亮;使用示波器查看PB5和PE5两个引脚的信号,信号C3翻转一次,延时300ms后,信号C4翻转,再延时300ms后,信号C3又翻转,如此不断的循环下去,测试结果与程序设计的思路一致,说明LED流水灯工程代码编写正确。
4.22.png
至此,STM32CubeMX软件开发教程-LED流水灯文档到此结束。

文章出处: 奇趣探索小帮手

收藏 评论0 发布时间:2020-12-21 14:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版