【正点原子STM32】_HAL库 笔记

前言:学了一段时间的库函数,惊觉原来现在大家都在学HAL库。我哭,现在开始跟着正点原子把HAL库学一遍,希望来得及!!!


创建项目包含的文件:

7,STM32CubeF1固件包中:

CMSIS-Include中包含以下6个cmsis;在CMSIS-Device-ST-STM32F1XX-Include中保留三个红色头文件;CMSIS-Device-ST-STM32F1XX-Source-Templates中包含剩下两个白色头文件。

 新建HAL库工程

 


点亮一个LED灯

  1. 使用正点原子HAL事例代码,在SYSTEM文件下创建BSP文件如下图:
  2. 在BSP文件下创建LED文件夹:
  3. 在MDK中新建并保存文件至LED文件夹中,分别新建文件led.c与led.h。
  4. 在MDK中添加工程分组,点击

led.h文件中写入代码:

#ifndef __LED_H
#define __LED_H 			   
#include "sys.h"  


#endif

#define LED0 PAout(8)   	//LED0,这里使用位操作定义端口
#define LED1 PDout(2)   	//LED1

void LED_Init(void);
#endif

 防止重复包含led.h

led.c文件中初始化端口

void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_Initure;

    __HAL_RCC_GPIOA_CLK_ENABLE();           	//开启GPIOA时钟
	__HAL_RCC_GPIOD_CLK_ENABLE();           	//开启GPIOD时钟
	
    GPIO_Initure.Pin=GPIO_PIN_8; 				//PB8
    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;  	//推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;          	//上拉
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);

	GPIO_Initure.Pin=GPIO_PIN_2; 				//PD2
	HAL_GPIO_Init(GPIOD,&GPIO_Initure);
	
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET);	//PA8置1,默认初始化后灯灭
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);	//PD2置1,默认初始化后灯灭
}

在主函数main.c中写入函数:

int main(void)
{ 
    HAL_Init();                    	//初始化HAL库    
    Stm32_Clock_Init(RCC_PLL_MUL9); //设置时钟,72M
	delay_init(72);               	//初始化延时函数
	LED_Init();						//初始化LED	

	while(1)
	{
         LED0=0;			     	//LED0亮
	     LED1=1;				 	//LED1灭
		 delay_ms(500);
		 LED0=1;					//LED0灭
		 LED1=0;					//LED1亮
		 delay_ms(500);
	 }
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值