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
本文来自博客园,作者:JsDakey,转载请注明原文链接:https://www.cnblogs.com/helloszy/p/15413220.html