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

相关推荐
视觉小萌新3 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
Zw-awa6 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
yyyang886 小时前
蓝牙系统整体架构详解
学习·信息与通信
无敌贵点大王6 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何6 小时前
二进制和十六进制
stm32·单片机
Linux-lucky6 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
国科安芯8 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
TST-魚爷8 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
金色光环8 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
Дерек的学习记录8 小时前
Unreal Engine 5:第三人称运动系统和人物动画
开发语言·学习·ue5