设为首页 加入收藏

TOP

明解STM32—GPIO应用设计篇之API函数及配置使用技巧(二)
2023-07-23 13:26:55 】 浏览:75
Tags:明解 STM32 GPIO 应用设 计篇之 API
介绍。
由于使用的是STM32的标准库,GPIO 相关的函数及配置定义和可以调用的接口放置在官方提供的标准库文件 stm32fxx_gpio.c和头文件 stm32fxx_gpio.h 文件中。

(1)、void GPIO_DeInit(GPIO_TypeDef* GPIOx);

        作用:将GPIO端口设置成初始的默认状态,相当于复位GPIO端口,默认的状态为输入浮空的状态。

        举例:GPIO_DeInit(GPIOA),将GPIOA端口所有引脚复位到默认状态。

(2)、void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

        作用:将GPIO端口引脚进行功能状态初始化。

        举例:将GPIOA的pin1引脚设为普通输出功能,IO驱动速率可达50MHz,推挽模式,带上拉电阻。

1 gpio_InitStruct.GPIO_Pin = GPIO_Pin_1;
2 gpio_InitStruct. GPIO_Mode = GPIO_Mode_OUT;
3 gpio_InitStruct.GPIO_Speed = GPIO_Fast_Speed;
4 gpio_InitStruct. GPIO_OType = GPIO_OType_PP;
5 gpio_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
6 GPIO_Init(GPIOA, &gpio_InitStruct);

 (3)、void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);

        作用:获取GPIO端口的所有引脚的一个默认状态,可应用于某个GPIO端口上。该函数内部默认的引脚默认状态如下。

1 GPIO_InitStruct->GPIO_Pin  = GPIO_Pin_All;
2 GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN;
3 GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz;
4 GPIO_InitStruct->GPIO_OType = GPIO_OType_PP;
5 GPIO_InitStruct->GPIO_PuPd = GPIO_PuPd_NOPULL;

        举例:使用gpio_InitStruct快速获取到了引脚的默认状态值。

1 GPIO_StructInit(&gpio_InitStruct);

(4)、void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

        作用:将指定GPIO端口引脚当前的配置进行锁定,锁定后该引脚配置不能被修改,只有等下次MCU复位锁定才能释放。

        举例:锁定GPIOA的管脚pin1配置不被修改。

1 GPIO_PinLockConfig(GPIOA, GPIO_Pin_1);

(5)、uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

        作用:为当GPIO的相应管脚配置成输入时,读取该GPIO端口下的相应引脚输入电平值。

        举例:读取GPIOA的pin1引脚输入电平值。

1 status = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1);

(6)、uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

        作用:为当GPIO配置成输入时,读取该GPIO端口下的所有引脚输入电平值。

        举例:读取GPIOA端口所有引脚的输入电平值。

1 status = GPIO_ReadInputData(GPIOA);

(7)、uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

        作用:为当GPIO的相应管脚配置成输出时,读取该GPIO端口下的相应引脚输出电平值。

        举例:读取GPIOA的pin1引脚输出电平值。

1 status = GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1);

(8)、uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

        作用:为当GPIO配置成输出时,读取该GPIO端口下的所有引脚输出电平值。

        举例:读取GPIOA端口所有引脚的输出电平值。

1 status = GPIO_ReadOutputData(GPIOA);

(9)、void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

        作用:置位相应GPIO端口引脚的电平值。

        举例:将GPIOA的pin1管脚电平置为1。

1 GPIO_SetBits(GPIOA, GPIO_Pin_1);

       &nbs

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇痞子衡嵌入式:恩智浦i.MX RT1xxx.. 下一篇《痞子衡嵌入式半月刊》 第 76 期

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目