历史上的今天
今天是:2024年09月03日(星期二)
2020年09月03日 | STM32F4外设驱动系列之GPIO
2020-09-03 来源:eefocus
GPIO常用相关寄存器
MODER:GPIO端口模式控制寄存器(GPIOx_MODER)(x = A..I)
OTYPER:GPIO端口输出类型寄存器(GPIOx_OTYPER)(x = A..I)
OSPEEDR:GPIO端口输出速度寄存器(GPIOx_OSPEEDR)(x = A..I)
PUPDR:GPIO端口上拉/下拉寄存器(GPIOx_PUPDR)(x = A..I)
IDR:GPIO端口输入数据寄存器(GPIOx_IDR)(x = A..I)
ODR:GPIO端口输出数据寄存器(GPIOx_ODR)(x = A..I)
AFRH/AFRL:GPIO复用功能高/低位寄存器(GPIOx_AFRH/GPIOx_AFRL)(x = A..I)
寄存器具体详情可查看STM32F4xx参考手册。
GPIO初始化函数与参数
GPIO初始化函数:HAL_GPIO_Init()
HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
GPIO初始化参数结构体:GPIO_InitTypeDef
typedef struct
{
uint32_t Pin;
uint32_t Mode;
uint32_t Pull;
uint32_t Speed;
uint32_t Alternate;
}GPIO_InitTypeDef
函数与结构体具体实现可参见HAL库源代码。
GPIO初始化实例
//初始化PA0端口
void GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_Initure; //GPIO初始化结构体
__HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟
GPIO_Initure.Pin = GPIO_PIN_0; //PA0
GPIO_Initure.Mode = GPIO_MODE_INPUT; //输入
GPIO_Initure.Pull = GPIO_PULLDOWN; //下拉
GPIO_Initure.Speed = GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOA, &GPIO_Initure);
}
GPIO引脚的参数需根据实际应用情况进行设置。
史海拾趣
|
布线中除环路最小化原则外,还有一个环路的变化最小化原则,这个原则对于减小DC-DC的地弹意义重大。 ADI对此有一篇文章专门对此进行了详细的说明。非常值得EE们参考。… 查看全部问答> |
|
今天听交通台,主题是“快速解决”。一人说自己的前任得罪了一位四十多岁的客户,人家死活不签单。自己接手后,就紧着夸这位大姐:“您怎么看上去这么年轻”“您怎么这么事业有成”,该客户第二天就签单了。 真的是“千穿万穿,马屁不穿” ...… 查看全部问答> |
|
我用的TI的DM642DSP和BCM5221以太网芯片,进行连网 采用UDP协议,报文头: typedef union { Uint8 Bytes[6]; Uint16 Words[3]; }MacAddr; // Ethernet Header #define ETHHDR_SIZE&nbs ...… 查看全部问答> |
|
新买了一台电脑,是windows7的正版,不想删了,看到有人装了ce6.0,也试了一下,能装,但是每个月的update却装不了.有人碰到过吗? 安装顺序是这样的, 1,vs2005 2vs2005sp1 3.s2005 for vista 4.wince6.0 5.wince6.0 sp1 6.wince6.0 r2 7.update. ...… 查看全部问答> |
|
在照明行业,人们对于LED光源的调光往往有个误区,即认为对比其他光源(荧光灯,金卤灯和钠灯等)的调光LED相对容易的多。而现实是LED光源调光技术在工程中的应用中往往不尽人意,为什么会是这样的情形?是LED光源的调光 ...… 查看全部问答> |
|
哪些手段确保FPGA外部芯片提供的数据准确无误地进入FPGA内部? 通常采用哪些手段确保FPGA外部芯片(比如ad芯片,存储器读数据时)提供的数据准确无误地进入FPGA内部? \0\0\0eeworldpostqq… 查看全部问答> |




