- 准备hal库
链接:https://pan.baidu.com/s/1qgfgcLL2yEb__dRb80nLdQ 提取码:f1y6
- 新建一个文件夹命名为hal_lib_study,并在其目录下创建以下几个文件夹
- 新建工程,取名为hal_study,device选STM32F429IGTx
- 在工程组里面创建以下文件分组

- 将下载好的hal库中的driver下的src和inc文件全部复制到HALLIB下
- 将下载好的hal库中的启动文件等相关的文件复制到CORE目录下
- 将下载好的hal库例程中的相关的文件复制到USER目录下
- SYSTEM目录下的文件为正点原子提供的文件
- 将文件分别加入到工程
- 在C/C++加入USE_HAL_DRIVER,STM32F429xx宏定义
- 加入以下路径
- main文件中编写简单的LED灯闪烁代码
#include "sys.h"
#include "delay.h"
#include "usart.h"
void Delay(__IO uint32_t nCount);
void Delay(__IO uint32_t nCount)
{
while(nCount--){}
}
int main(void)
{
GPIO_InitTypeDef GPIO_Initure;
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz
__HAL_RCC_GPIOB_CLK_ENABLE(); //开启GPIOB时钟
GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1; //PB1,0
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
while(1)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET); //PB1置1
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //PB0置1
Delay(0x7FFFFF);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //PB1置0
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); //PB0置0
Delay(0x7FFFFF);
}
}
DEMO下载地址https://download.csdn.net/download/mygod2008ok/12383602