本帖最后由 zsy-s 于 2024-7-21 19:22 编辑
# 前言
本文讲一下 环境搭建,实例代码的编译和烧写。
并尝试点灯,学习一下驱动gpio的操作。
虽然stm占用率很高,也是个基本嵌入式er入门的首选芯片。可惜我没真正从0开始玩过。都是基于别人的项目直接写应用。
与linux的应用开发相差无几,所以对于能够从底层了解stm32芯片的机会很开心。
希望能够有更多不忙的时间,投入到研究此款板卡的知识。
---------------------------
**目录**
[TOC]
# 项目创建
## 安装工具
> 官方新建工程的软件:[STM32Cube ](https://www.st.com/en/development-tools/stm32cubemx.html )
> [pack支持包](https://www.keil.arm.com/packs/stm32h5xx_dfp-keil/devices/)
## 例程使用
首先安装 官方工具,用于创建 stm32H533芯片的项目,可支持对keil工具的项目生成。
然后使用咱们的keil工具打开,安装好对应的pack包,点一下build看看能不能成功编译固件。
选择了例程 uart,成功编译出固件:
选择stlink,并并成功烧写固件:
曾经打过一款stm32f103cb6c芯片最小板卡,结果怎么都不能烧进去固件,刚开始学习就结束了stm32的学习进程。
现在那款半生的板子还在箱子底,待研究研究stm32烧写的引脚和协议流程,重新烧一下那款未成的最小板子。
`打开串口,可以看到串口可以输出数据了:`
>
## 点灯
* 如下原理图上标注,可见用户编程led的原理图。
引脚pa5,翻看背面已经焊接0欧电阻,可以直接控引脚,点亮led了。
想学习一下例程里goio的控制接口,发现官方例程里有直接点亮ld2的例程,直接拿来编译,看看效果。
学习一下引脚控制接口。
# 代码讲解
```ccode
__HAL_RCC_GPIOA_CLK_ENABLE(); 初始化引脚的外设时钟,引脚pa5,故开启a组引脚的时钟。
//配置pa5引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Pin = GPIO_PIN_5;
HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);
//定时反转pa5引脚电平,控制ld2灯的亮灭
while (1)
{
HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
HAL_Delay(100);
}
```
# 效果展示
262916584407503a82f1b5bb1a003eb9