STM32CUBEMX 创建流水灯工程(详细图文教程)

本文在STM32CUBEMX 5.6.1版本+原子STM32F103mini开发板基础上进行创建。

STM32CUBEMX安装可参考:https://blog.csdn.net/i2blue/article/details/87707847

1.打开CUBEMX 进入主界面 选项File--New Project 开始建立新工程

2.进入芯片型号选择界面  输入具体芯片型号  开发板芯片具体型号为STM32F103RC  选择具体封装型号"LQFP64"后点击右上角 "Start Project"(选择后此选项变蓝 可进行选择)

 

 3.进入工程编辑界面 首先进行时钟RCC选项配置 点击System Core下拉栏中的 "RCC"--在RCC Mode and Config 选择如下 (开发板HSE及LSE 均为外部晶振)选择后,对应功能引脚变绿。

 4.进行系统具体时钟配置点击“Clock Configuration”选项栏进入时钟树配置界面 系统默认选择芯片内部时钟运行,界面如下:

 此时我们需根据开发板实际情况,选择使用外部晶振并进行相关配置,开发板晶振为HSE:8M   LSE:32.768k  ;在HSE “input fre”框内填入8 ,“PLL Source Mux ”选择 HSE.“System Clock Mux” 选择PLLCLK,我们在HCLK框内填入我们最终想要得到的系统频率,此处填入72Mhz.按回车键--在弹窗选择OK后,软件根据填入的值 自动进行分频配置。配置完成如下:

扫描二维码关注公众号,回复: 11178654 查看本文章

 5.返回PINout&Config选项界面,进入系统调试及基准时钟配置。点击System Core下拉栏中的 "SYS"--在SYS Mode and Config 内的debug 选项下拉栏中选择调试接口,SW模式就选择serial Wire.JTAG模式就选择JTAG.4PIN和5pin的区别多了一个复位引脚,具体根据自身的硬件调试接口设计决定,(这里我们选择SW模式)选择完成后右边单片机对应的引脚变绿;Timebase选项进行默认。

 6.进行LED对应GPIO的选择及配置。开发板LED1对应PD2,LED0对应PA8。右侧单片机图形界面每个引脚点击后都会弹出此引脚的具体功能。此时我们依次点击PD2、PA8引脚都设置为GPIO_Output. 输出模式。

设置完成后如下图:

然后我们对两个输出引脚进行具体功能的设置,根据硬件原理图可知 我们需设置成开漏输出,低电平亮,高电平灭。 

在这里题外说一下,开漏及推挽的大体作用。

开漏:写1时,GPIO被导通到悬空的漏极,写0时GPIO被导通到GND。开漏想要输出高电平,外部需接上拉电阻到VCC,适用于电流驱动型应用,其吸收电流的能力相对强(最大20mA 注意上拉电阻的取值)。例如下图中的LED电路。

推挽:写1时,GPIO被导通到VCC,写0时GPIO被导通到GND。一般接数字器件。(IIC协议要求:SCL和SDA必须都是【开漏+上拉】,是因为IIC的从器件(如24C04等),不具备拉高总线的能力,从机控制SDA上的电平,只能通过令SDA接地或不接地来实现输出0或1,而无法通过接地或接VCC来实现输出0或1。这就要求IIC总线上必须是默认上拉的,否则从机无法令SDA为高。) 

 7.返回PINout&Config选项界面,进入GPIO配置。点击System Core下拉栏中的 "GPIO"--在GPIO Mode and Config 内点击PA8 ,进行PA8引脚的具体设置:输出电平:low(默认亮灯便于观察);  输出类型:开漏OpenDrain;  上下拉选型不进行选择;最高输出频率 Low。PD2引脚按PA8引脚配置一样进行设置。

端口速率的区别如下:

配置高速:输出频率高,噪音大,功耗高; (如 配置SPI、CAN引脚,要求通信稳定,速度过低会造成输出失真、通信异常。 )

配置低速:输出频率低,噪音小,功耗低,提高系统EMI(电磁干扰)性能;(低功耗产品会选择低)实际应用中,满足要求的情况下就低不就高。

 8.设置完成后,点击Project Manager 选项,进入工程设置界面,选择"Project"选项,Project Name框内填入工程名称, Project Location点击后面的"Browse"选择你想要将生成的工程保存到哪个目录里面。我选择的是自己的D盘CUBE文件夹。Toolchain/IDE根据你用的编译软件进行选择 使用KEIL就选择keil的对应版本。其他默认。

 设置完成后界面如下

9.Code Generator 选项暂时进行默认

copy all used libraries into the project folder   复制所有库文件(不管工程需要用到还是没用到)到生成的工程目录中,此做法可以使在不使用Cubemx或者电脑没有安装cubemx,依然可以按照标准库的编程习惯调用HAL库函数进行程序编写。

generate peripheral initialization as a pair of ....:每个外设生成独立的.C .H文件,方便独立管理

keep user code when re-generating  重新生成代码时,保留用户代码(前提是代码写在规定的位置。也就是生成工程文件中的BEGIN和END之间。否则同样会删除。后面会根据生成的工程进行说明)

delete previously generated files when not re-generated   删除以前生成但现在没有选择生成的文件  比如:之前生成了led.c,现在重新配置没有led.c,则会删除之前的led.c文件。(此功能根据自身要求进行取舍)

10.然后点击GENERATE CODE  创建工程,生成工程完成后提示框 open folder打开工程目录也就是打开工程所在的文件夹,。   open project 打开工程。我们选择Open Project直接打开工程。

11.我们选择的是生成KEIL V5版本的工程,自己电脑安装了对应版本keil软件的话 将自动打开我们生成的工程,界面如下

前面说的keep user code when re-generating 选项,只有你讲自己所写的代码放在/*USER CODE DEGIN XX*//*USER CODE END XX*/之间,CUBEMX再次在这个工程基础上生成代码时才不会删除你自己写的代码。

然后对工程进行编译 。

编译完成后,根据我们使用的调试器及工程选择的调试接口 设置keil 再进行下载。我使用的是stlink 则选择stlink。

点击setting 进行具体设置。 port 选择SW接口。(第5节我们选择是SW模式 )。连接开发板正确的话,SW Device会出现芯片提示。如下图所示。

Flash Download 选择 Reset and Run。下载程序后自动重启

点击下载

下载成功后 开发板对应的两个LED 按照程序默认配置常亮

while(1)循环内添加以下代码,重新编译工程、下载程序后则实现流水灯效果

原创文章 1 获赞 2 访问量 87

猜你喜欢

转载自blog.csdn.net/weixin_42634914/article/details/105898552