从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闪烁了

相关推荐
y = xⁿ1 天前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
AOI小白新手上路1 天前
江科协51单片机 17-2 红外遥控电机调速实验调试总结
单片机·嵌入式硬件·51单片机
oshan20121 天前
零基础STM32入门教程--10-PWM 呼吸灯
stm32·单片机·嵌入式硬件
记帖1 天前
STM32C5A3R开发(7)----ADC电压采集
嵌入式硬件·adc·dac·stm32cubeide·stm32c5·stm32cubemx2·stm32c5a3rgt6
HugoStudio_SWAN1 天前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
sakiko_1 天前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
自小吃多1 天前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
jianqiang.xue2 天前
智能体整体架构设计:四大模块与目录组织
单片机·嵌入式硬件·物联网·架构·esp32
存在morning2 天前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
Messy create2 天前
【BMS-AFE-温度检测】
stm32·单片机·能源