HC06-BTGET-R 基于HAL库的STM32开发之基本工程环境配置

本教程介绍基于STM32CubeMX的HAL库开发STM32F103C8T6工程,包括配置目标芯片、选择SWD下载方式、设置72MHz主频、GPIO配置及Keil uVision编译下载流程。
摘要由CSDN通过智能技术生成

本章任务

STM32有多种开发方式,如基于寄存器、基于标准外设库(或称“STD库”)、基于HAL库和基于LL库。更多简介可以查看官方的定义,这里不再过多赘述。但需要注意的是一般来说STD库和HAL库是不兼容的。

本章将讲解如何基于HAL库快速开发STM32工程的第一步。工程以自己乱画的PCB为硬件载体,主控芯片为STM32F103C8T6。

编程环境

工程建立:STM32CubeMX Version 6.2.1
第一次出现就简单介绍一下,后面可能就不会再介绍了:这是一款ST公司基于其旗下芯片生态开发的一图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。
在这里插入图片描述
其支持的IDE工具有EWARM、MDK-ARM、SW4STM32、TrueSTUDIO、STM32CubeIDE等等,简单点说,就是一个初始化代码生成器,笔者用来建立STM32工程。

工程编辑:Keil uVision V5.30.0.0
也简单点说,就是一个编译代码,支持ST-LINK/J-LINK烧录的嵌入式开发环境。本文开发ST Cortex-M3内核的芯片,需要安装其F1的支持包 Keil.STM32F1xx_DFP.2.3.0.pack ,有条件可以升级到更新更少BUG的Keil.STM32F1xx_DFP.2.4.0.pack。

步骤说明

(1)打开STM32CubeMX环境

在这里插入图片描述
再明确一下使用这个环境的用途——建立工程。

基本工程环境配置主要的任务是,没有任务。但至少保证Keil uVision可以顺利编译(Bulid)和烧录(Download)。

在这里插入图片描述
打开环境后,在主界面选择通过芯片建立工程的方式建立工程。

(2)选择目标芯片

在这里插入图片描述
在左侧的“Part Number”中键入关键字“F103C8”,可以查找到对应的芯片,在右下栏“MCUs/MPUs List:x item”中双击对应的芯片,如下图所示位置。即可完成工程目标芯片选择,可跳转到下一步界面中。
在这里插入图片描述

(3)配置下载方式※

SWD下载方式为个人开发常用下载流派,如果忘记了请参考《STM32芯片救砖指南》(有空补)。

在这里插入图片描述
在左侧System Core中选择SYS项,在右侧展出的设置栏“SYS Mode and Configuration”中配置Debug模式为Serial Wire,即常见的SWD下载模式/四线下载方式,可以看到配置完成,芯片引脚PA13和PA14被标识为已配置。其中PA13为SWDIO,PA14为SWCLK。

(4)时钟配置

不必要,但可以做。
在这里插入图片描述
笔者习惯芯片跑到最高频,STM32F103C8T6最高支持72MHz主频,需要选择外部晶振(内部晶振最高跑64MHz主频)。这里因为板子设计时使用外部无源晶振,因此选择Crystal/Ceramic Resonator,如果是有源晶振,或者外部时钟输入,选择BYPASS Clock Source,即旁路时钟源,可以到Clock Configuration中查看二者区别,最显而易见的区别就是Crystal/Ceramic Resonator是双向的,而BYPASS Clock Source是单向输入的,所以硬件中若使用有源晶振或者外部时钟信号输入,其应该连PC14或PD0,即RCC_OSC32_IN或者RCC_OSC_IN。

勾选完成后切换到Clock Configuration选项卡,在HCLK(MHz)中直接键入72并回车完成一键配置。一键修改过程中,可能会出现一些弹窗,提示您当前的其他设置不能满足72MHz的配置,巴拉巴拉的…点OK就可以。
在这里插入图片描述

在这里插入图片描述
上图为配置前时钟树设置,下图为配置后时钟树设置。
在这里插入图片描述

(5)其他配置

不必要,但可以做。

这一个配置是为了检验代码是否成功烧录到目标芯片中的重要环节。
在这里插入图片描述
查看PCB设计原理图,发现有一些LED,可以做做文章。
在这里插入图片描述
返回引脚配置选项卡,将RGB1的三个引脚配置为GPIO_Output,并修改IO的一些属性:
在这里插入图片描述

(6)工程信息管理

最后一环,比较重要,注意一些细节,免功亏一篑。
在这里插入图片描述
在这个选项卡中,含有三个子选项卡,其中Project选项卡,按下图配置,若带有中文,其实也没有什么大不了的,只是芯片启动文件startup_stm32f103xb.s可能无法拷贝到所选择的路径下,可能会造成无法编译成功,各种错误神神齐齐。
在这里插入图片描述
代码通用设置页面,可以参考笔者配置
在这里插入图片描述
更多配置,暂时用不上。在完成所需配置后,可以生成/更新工程
在这里插入图片描述
生成成功,弹窗提示…successfully…。一般来说,中间的Open Project慎重点击。
在这里插入图片描述
这里需要注意若工程已经打开,建议直接Close,再于Keil uVison5中更新代码更改。

可以在Open Folder后,在对应目录中找到所选IDE的工程文件,再进行接下来的环节。
在这里插入图片描述

(7)编译工程

进来第一步,啥也不改,好习惯,直接编译一次。
在这里插入图片描述
0 Erros(s),0 Warning(s)

(8)点灯编程

在这里插入图片描述
双击打开main.c文件,在第99行书写用户代码:

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_GPIO_TogglePin(RGB1_R_GPIO_Port, RGB1_R_Pin);
		HAL_Delay(300);
		HAL_GPIO_TogglePin(RGB1_G_GPIO_Port, RGB1_G_Pin);
		HAL_Delay(300);
		HAL_GPIO_TogglePin(RGB1_B_GPIO_Port, RGB1_B_Pin);
		HAL_Delay(300);
  }
  /* USER CODE END 3 */

重复上一步的编译步骤,确保工程无错误。

(9)配置下载

在这里插入图片描述
打开下载配置窗口,进行如下配置:
在这里插入图片描述
在这里插入图片描述
点击确定,ok,保存。笔者使用ST-LINK工具进行程序烧录下载,如果使用其他工具,在Debug选项卡中,Use:下拉列表中选择其他工具选项。
在这里插入图片描述
重新编译后,进行下载烧录,烧录完成可以在Build Output中查看到烧录完成信息。

附录

点灯完成,RGB六色交替

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rhys·古来夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值