21-10-13_STM32_GPIO_1

一、固件库寄存器的区别

1.固件库是把寄存器封装后的形式

2.ST有两种库,一种是HAL库,一种是标准库,两种库统称为固件库

3.固件库是函数的集合(API)

二、头文件源文件

头文件为 .h 文件,源文件为 .c 文件,一个源文件对应一个头文件,源文件里的函数在头文件里声明,其他程序调用函数只要声明头文件就可以了

三、GPIO库重要函数

1.初始化函数

 void HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init)
     
 /*作用:初始化一个或者多个IO口,且这些IO配置必须一样
 第一个入口参数设置要初始化的IO口,第二个入口参数为定义的结构体变量
 */    

2.读取输入电平函数

 void GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
     
 /*作用:读取某个GPIO的输入电平。实际操作的是GPIOx_IDR寄存器
 第一个入口参数设置读取的IO口,第二个入口参数为读取的脚
 */    

IDR:数据输入寄存器,Input Data Register

3.设置引脚输出电平函数:

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

4.电平翻转函数:

void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
/* 为0则1,为1则0
*/

四、配置HAL库来操作IO口的步骤

1.初始化HAL库

HAL_Init();

2.初始化系统时钟

 Stm32_Clock_Init();

3.激活IO口时钟

 __HAL_RCC_GPIOB_CLK_ENABLE();//GPIOB的时钟使能标志位

4.初始化IO口模式

HAL_GPIO_Init(GPIOB,&GPIO_Initure);

5.操作IO口,输出高低电平

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);	//PB1置0
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);	//PB1置1 
posted @ 2021-10-16 00:04  JsDakey  阅读(80)  评论(0)    收藏  举报