从0开始的STM32HAL库学习1

基础外设初始化配置步骤

本学习以stm32f103c8t6为主控芯片学习。配合DMK-Keil使用,因为cubeide我还没找到很好的教程,而且用了几次发现不会用,所以还是先学习hal库,等hal库学习完之后再用学习使用cubeide,两者使用应该大差不差,主要还是先会使用cubemx

新建工程

1在主界面选择File-->New Project 或者直接点击ACCEE TO MCU SELECTOR

搜索自己板子的芯片,就可以了,双击创造工程

接下来会到这个界面,

在右边这个芯片中

这种颜色表示不可配置引脚 电源专用引脚以黄色突出显示。其配置不能更改

这种颜色表示你配置了一个I/O口的功能,但是没有初始化相对应的外设功能 引脚处于no mode 状态

绿色表示配置成功

GPIO口的配置

这里只需要把我们的LED对应引脚设置为GPIO_Output即可

我们将PA1上接上一个led灯,将PA1设置为GPIO_Output。

时钟源设置

点到clock_configuration中配置时钟树

其实也就是32的时钟树框图让你配置 默认时钟是使用内部RC振荡器(HSI)

在配置时钟前需要将

RCC配置为外部晶振即crystal resonator

这里也可以将SYS中的debug改为Serial Wire这样就方便调试了。

之后再点到clock_configuration中配置时钟树

将途中所框的改为72,就配置完成了

工程管理

点到Project Manager

需要配置红色框框中的几个配置,分别为文件名,文件存放地址和选择IDE

我是配置成如图所示(IDE选择MDK_ARM就是keil编译器)

注意点:存储目录不可以有中文

接着点到code generator中

勾选红框中所选配置。每个外设都配置单独的.c和.h文件。这样方便我们管理和写代码。

生成代码

点击即可。

代开代码

我们将会看到我们的不少代码以及生成了,我们只需要填写关键代码即可。

我们找到while(1)

cs 复制代码
while (1)
  {
    /* USER CODE END WHILE */
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

将代码设置成这样。

注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

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

各个注释的翻译解释

到此,STM32CubeMX的基本使用介绍完了。我们也成功使一颗led闪烁了

相关推荐
小莞尔19 分钟前
【51单片机】【protues仿真】基于51单片机宠物投食器系统
c语言·stm32·单片机·嵌入式硬件·51单片机·proteus
逼子格23 分钟前
【Protues仿真】基于AT89C52单片机的数码管驱动事例
单片机·嵌入式硬件·硬件工程·硬件工程师·protues·数码管·电路仿真
★YUI★43 分钟前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
咸甜适中1 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
笔记·学习·rust·egui
風清掦1 小时前
零基础玩转STM32:深入理解ARM Cortex-M内核与寄存器编程
stm32·单片机·嵌入式硬件·mcu·物联网
It_张3 小时前
Building Systems with the ChatGPT API 使用 ChatGPT API 搭建系统(第五章学习笔记及总结)
笔记·学习·chatgpt
The_Second_Coming3 小时前
Linux 学习笔记 - 集群管理篇
linux·笔记·学习
芯岭技术5 小时前
PY32F003国产单片机、外设丰富、高性价比的国产替代方案
单片机·嵌入式硬件
浪子不回头4156 小时前
Mirage-LLM编译成大Kernel
学习
QQ5286211247 小时前
单片机GD32F230芯片解密解析及专业操作建议
单片机·嵌入式硬件