STM32CubeMX入门之点亮板载LED

STM32CubeMX入门之点亮板载LED

1.新建工程

1.在主界面选择File-->New Project   或者直接点击ACCEE TO MCU SELECTOR   (部分图片来源于网络,这里我使用STM32F103VET6为例程)

 出现芯片型号选择  一般我们直接搜索自己芯片的型号即可   (例如:STM32F103VET6芯片,检索关键字为STM32F103VE,如果写了T6的话就搜索不到)

如果你是设计产品想要选择一款芯片  在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,帮助你找到适合的芯片

 选择好我们芯片型号后,点击Start Project(或者双击你搜索到对应型号的芯片名)

2.芯片外设配置

(理论知识部分)这里我们分成三大块来讲解(分别对应如图所示的序号123)

1.MCU外设资源选择
在这里可以选择MCU的各种资源和外设
提供两种方式
Categories  种类选择
将MCU的各种外设和资源分类,供用户选择使用
A-Z  顺序选择
MCU的外设资源按A-Z 排序,供用户选择使用
2.外设配置
这里可以设置你所选择外设的各种功能
这里以串口1为例   我们可以选择串口的模式(异步,同步,半双工)   串口接收中断,和串口DMA传输等等
3.预览界面

这里分为引脚预览系统预览

引脚预览:

引脚预览就是可以查看那个引脚配置了什么功能,和各个引脚位置  

随便点击一个引脚,即可设置该引脚的各种功能(比如可以配置为输入输出等)

类似于VSS颜色(淡黄色)的引脚:这种颜色表示不可配置引脚  电源专用引脚以黄色突出显示,其配置不能更改。

类似于PF9颜色(深黄色)的引脚:这种颜色表示你配置了一个I/O口的功能,但是没有初始化相对应的外设功能(比如输入输出等),引脚处于no mode 状态。

类似于PA9颜色(深绿色)的引脚:绿色表示配置成功

系统预览:

系统预览就是查看配置的各种外设和GPIO的状态 ,查看其是否配置成功。

  

第一个(圆内勾),表示配置成功。

第二个(三角感叹号),表示警告,对应配置出现问题  点击该选项即可外设配置界面查看。

具体各个功能的配置(UATR/DMA/ADC/TIM...),我们会在后面慢慢学习的到。

(实操部分)配置LED所需配置的配置

1.配置PC13为输出模式(具体对应你自己开发板上的LED引脚,这里我LED引脚为PC13)

点击如下图中PC13引脚,选择GPIO_Output配置为输出模式(其它模式顾名思义)

如果想要修改GPIO的输出模式(推挽输出,开漏输出,速度,上拉或下拉或不拉等)请看下面一张图片的中间部分(以此类推):

2.配置时钟树(核心)

配置RCC才能够使用外部时钟源

然后再点击Clock  Configuration

                        图 时钟树配置(未配置RCC时的时钟树)

  未配置RCC的时钟树采用的是内部RC振荡器(HSI),我这里芯片内部为8M的HSI(STM32F103VET6),温漂大,并且最高时钟为:8M/2 * 16 = 64MHZ 与我们官方推荐的72MHZ相差8MHZ,64MHZ的主频在性能上还是不太行,所以这里我们需要配置为外部HSE晶振输入(我这里采用8MHZ晶振HSE和32.768KHZ LSE),8M * 9 =72 MHZ,最高可超频到8M * 16 = 128MHZ。

                       图 时钟树(已配置RCC的时钟树)

时钟树配置具体参考我上图所示即可(配置为72MHZ主频,STM32F103VET6)。

3.配置SYS中debug选项

  不然下载到芯片后,芯片就会被锁住(麻烦的很),具体现象是第一次可以下载,第二次就无法识别DAP或其它下载器,也就是无法继续下载程序了。(如果不幸出现这种情况,请点击下面这个链接,看我是如何解决的:Click here)

配置:SYS---debug--Serial Wire

 

 3.工程管理

设置完MCU的各个配置之后,第三个就是工程文件的设置了。

按如下图进行Project配置:

 

 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可  IDE我们使用的是 MDK-ARM V5。(安装标准库的目录不能有中文字符不然会乱码)

 点击Code Generator,进行进一步配置  (按如下配置即可,其它具体需求可以自己尝试勾选)

 

最后点击GENERATE CODE生成我们的代码文件

点击Open Project后会自动打开keil5工程,接下来我们来点个灯吧!

4.点灯

while循环添加下面两行代码即可。

    HAL_Delay(500);

    HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_15);

5.须知知识点

  所有自己编写的代码请放在/* USER CODE BEGIN XXX */   /* USER CODE END XXX */之间 

 这样我们修改工程的时候你自己写的代码就不会被删除。

注:本文主要参考别人的教程以及我自己实际操作的遇到的问题和解决方法以及教程的重新整理。

参考链接:https://blog.csdn.net/as480133937/article/details/98947162

原文地址:https://www.cnblogs.com/iBoundary/p/13029930.html