这篇文章将详细介绍 如何在 stm32103 板子上点亮一个LED.
对于以上软件的安装可以参考 : 最详细 keil5 和 cubeMX安装教程
芯片的原理图如上图,可以看到控制 LED1 的引脚是 PB4
。
灯 D1 的 右边接在 VCC 电源上,如果 想要点亮 led , 需要将 led 的左侧 GPIO 引脚 PB4 设置为 低电平
即可。那么该图是 低电平控制 led
。
GPIO ,全称为通用输入输出(General-Purpose Input/Output ),是 连接外部设备的通用接口。用于与外部设备进行数字信号的输入和输出。它在嵌入式系统、单片机、单板计算机等领域都有广泛的应用,使数字系统能够与外部世界互动和通信。
输入:
GPIO 可以用于接受外部设备发送的数字信号,如 按钮的状态,传感器数据。获取外部数据或事件。
输出:
GPIO 可以用于向外部设备发送数字信号,如控制 LED, 继电器,电机等。 操作和控制外部设备。
cubeMX 会自动生成 GPIO 初始化的代码。
代码解析:
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET);
GPIO_InitStruct.Pin = GPIO_PIN_4;
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);
__weak void HAL_Delay(uint32_t Delay);
uint32_t Delay :表示要延时时间,以毫秒(ms)为单位。这是一个无符号的 32 位整数。
__weak :是一个弱符号。
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState
PinState);
参数解释:
GPIOx : 这是一个指向 GPIO_TypeDef 结构体的指针,指定了要控制的GPIO端口,例如GPIOA、GPIOB等。
GPIO_Pin : 这是一个16位的整数,指定要设置的特定引脚。可以使用宏定义来指定要控制的引脚,例如GPIO_PIN_0,GPIO_PIN_1,GPIO_PIN_2等。
PinState : 这是一个枚举类型 GPIO_PinState,用于指定要写入的引脚状态。它有两个可能的值:GPIO_PIN_RESET和GPIO_PIN_SET,分别代表引脚输出低电平和高电平。
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
在 工程的 while 函数中使用 写函数 HAL_GPIO_WritePin 点亮 LED.
tips
:
可以讲代码写在 BEGIN 和 END 之间,这样当我们重新生成代码时 就不会造成代码销毁。
GPIO的8种工作模式:
输入模式
(Input Mode):GPIO引脚被配置为输入模式时,它可以接收外部设备发送的信号。引输出模式
(Output Mode):GPIO引脚被配置为输出模式时,它可以向外部设备发送信号。系统推挽输出模式
(Push-Pull Output Mode):在推挽输出模式下,GPIO输出引脚可以提供强驱动开漏输出模式
(Open-Drain Output Mode):在开漏输出模式下,GPIO输出引脚变为开漏输复用输入模式
(Alternate Function Input Mode):GPIO引脚可以配置为复用输入模式,用于复用输出模式
(Alternate Function Output Mode):GPIO引脚可以配置为复用输出模式,用模拟模式
(Analog Mode):有些GPIO引脚支持模拟模式,可以用于连接模拟电路,例如传感器中断模式
(Interrupt Mode):GPIO引脚可以配置为中断模式,以便在引脚状态发生变化时触发中断。这允许系统在无需不断轮询GPIO状态的情况下,对引脚的变化进行响应。下一篇文章将继续为大家介绍 STM32F103C8T6 使用 cubeMX 通过 按键 点亮 led。