历史上的今天
今天是:2025年02月03日(星期一)
2021年02月03日 | STM32F4xx GPIO函数解释
2021-02-03 来源:eefocus
以下内容来自stm32f4xx_gpio.c
gpio.c内有14个函数,其中读写操作9个、初始化操作3个、复用( Changes the mapping of the specified pin.---更改指定引脚映像),还有一个 Specifies the pins to be toggled.<切换指定引脚>。
一、函数
1、读写操作
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) //读取输入I/O口的引脚值 ---0或1
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)//读取输入I/O口状态值
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) //读取输出I/O口的引脚值
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)//读取输出I/O状态值
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//I/O口的引脚值置高
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//I/O口的引脚值置低
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)/向I/O引脚写入数据
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)//向I/O口写入数据
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)//锁定I/O口
2、初始化操作
void GPIO_DeInit(GPIO_TypeDef* GPIOx)
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)//I/O口初始化
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)//GPIO_InitStruct置默认值
3、复用操作
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
4、toggle bit
void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
二、使用方法
1.读写操作
读写操作使用了GPIO_TypeDef、uint16_t定义参数,使用时需根据具体要求选择合适的参数。
2.初始化操作
使用该类函数之前需要获得GPIO_InitStryct结构体,并赋值。再调用该函数。
3、4方法同上。
史海拾趣
|
谁能给我发个netsvwrap.msi安装包 谢谢 微软已经不提供下载了 急用 38572681@163.com 谁能给我发个netsvwrap.msi安装包 谢谢 微软已经不提供下载了 急用 38572681@163.com… 查看全部问答> |
|
现今 嵌入式开发中C代码确实比C++ 代码有明显或较大的效率上的优势么 ? 嵌入式开发中C代码确实比C++ 代码有明显或较大的效率上的优势么 ? 硬件发展的今天 两者之间的区别究竟多大呢? 真的不用C++么? 谢谢!… 查看全部问答> |
|
在ADC_init()AD初始化函数中打开了ADC12IE中断,在ADC12ISR中断函数中需不需要将ADC12IE关掉? 我的程序出现两个问题: 问题1:如果在#pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) 中断函数中不把 ...… 查看全部问答> |
|
DM9000AEP升级到DM9000CEP: 最近有很多朋友,问到DM9000AEP升级到DM9000CEP,是否可以完全兼容。或者需要修改哪些地方,可以这样回答: 1.DM9000AEP和DM9000CEP在管脚定义上是完全PIN TO PIN,都是LQFP48PIN,目前因为行业竞争 ...… 查看全部问答> |




