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

相关推荐
默默开发2 小时前
完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统
人工智能·学习·电脑
for_ever_love__2 小时前
Objective-C学习 NSSet 和 NSMutableSet 功能详解
开发语言·学习·ios·objective-c
LCMICRO-133108477463 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
盐水冰10 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵10 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
逐步前行10 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
似水明俊德11 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net
0南城逆流011 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业11 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi201511 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑