点亮LED灯(STM32F103C8T6+STM32CubeMX+KEIL+面包板+STLINK)

参照使用STM32CubeMX实现STM32F103C8T6bulepill简单的LED灯点亮_stm32cubemx stm32f103c8t6-CSDN博客复现了3个LED灯的闪亮。

单就面包板接线来讲,STM32是通过STLINK供电,再从3V3接出一根线,与面包板正极相连,再从正极分别引出连接LED灯的线,这样就有了给LED灯供电的来源。

LED灯另一端分别接对应的GPIO端口即可。乍一看似乎因为没有和负极相连,而导致电路不完整。实际上:

LED 灯的阴极(短引脚)连接到 STM32 的 GPIO 端口。在这种连接方式下,当你将 GPIO 端口配置为输出模式并输出低电平(逻辑 0)时,GPIO 端口相当于接地(负极),这样就在 LED 的阳极(接 3V3)和阴极(接 GPIO 低电平)之间形成了电势差,电流就会从 3V3 经过 LED 流向 GPIO 端口,从而点亮 LED 灯。

另外,文中提及的PA5/PB9/PC14,实际上就是主板上的A5/B9/C14针脚。

对应的变量则为GPIO_PIN_5、GPIO_PIN_9、GPIO_PIN_14。

相关的初始化代码为:

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOC_CLK_ENABLE();
  __HAL_RCC_GPIOD_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_SET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);

  /*Configure GPIO pin : PC14 */
  GPIO_InitStruct.Pin = GPIO_PIN_14;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  /*Configure GPIO pin : PA5 */
  GPIO_InitStruct.Pin = 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(GPIOA, &GPIO_InitStruct);

  /*Configure GPIO pin : PB9 */
  GPIO_InitStruct.Pin = GPIO_PIN_9;
  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);

}

而这些代码通过在STM32CUBEMX中配置后自动生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值