嵌入式-STM32-STM32基础理论
霸道板和烧写器:基础理论:GPIO:通用目的输入、输出端口。STM32最多拥有GPIOA、…、GPIOG等七组端口,每组端口最多拥有PIN0、…、PIN15共16个引脚。STM32每个I/O端口都可自由编程,但I/O端口寄存器必须按照32位字被访问。STM32每个I/O端口都由7个寄存器来控制。STM32的I/O端口可由软件配置成8种模式。端口模式:推挽输出开漏输出推挽式复用功能开漏式复用功能模拟
·
霸道板和烧写器:
基础理论:
- GPIO:通用目的输入、输出端口。
- STM32最多拥有GPIOA、…、GPIOG等七组端口,每组端口最多拥有PIN0、…、PIN15共16个引脚。
- STM32每个I/O端口都可自由编程,但I/O端口寄存器必须按照32位字被访问。
- STM32每个I/O端口都由7个寄存器来控制。
- STM32的I/O端口可由软件配置成8种模式。
端口模式:
- 推挽输出
- 开漏输出
- 推挽式复用功能
- 开漏式复用功能
- 模拟输入
- 浮空输入
- 下拉输入
- 上拉输入
GPIO初始化:
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable 使能时钟 */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level 设置输出引脚初始电平*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5, GPIO_PIN_SET);
/*Configure GPIO pin : PC13 定义Key2开关为输入,和下拉模式,最后把引脚写入对应端口寄存器中*/
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA0 与上同理*/
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB0 PB1 PB5 设置三个小灯引脚为输出模式,推挽输出,低速时钟和把引脚写入寄存器中*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)