[STM32F1] STM32F103C8T6 GPIOA->ODR 中的 A15

[复制链接]
153|8
石榴大王 发表于 2025-10-21 10:57 | 显示全部楼层 |阅读模式
测试PA15时出现问题,在 GPIO->ODR = 0x7fff 时,A15 位就是无法降为 0。无法在 PulseView(sigrok FX2 逻辑分析仪)中通过下降沿触发。

A0-A3 已被配置为输出。 STM32CubeIDE 中的代码:
static 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(ON_BOARD_LED_GPIO_Port, ON_BOARD_LED_Pin, GPIO_PIN_SET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
                          |GPIO_PIN_15, GPIO_PIN_SET);

  /*Configure GPIO pin : ON_BOARD_LED_Pin */
  GPIO_InitStruct.Pin = ON_BOARD_LED_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(ON_BOARD_LED_GPIO_Port, &GPIO_InitStruct);

  /*Configure GPIO pins : PA0 PA1 PA2 PA3 */
  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
  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 pins : PB10 PB11 PB12 PB13
                           PB14 PB15 PB8 PB9 */
  GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
                          |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_9;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /*Configure GPIO pin : PA15 */
  GPIO_InitStruct.Pin = GPIO_PIN_15;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}

classroom 发表于 2025-10-21 15:09 | 显示全部楼层
硬件功能复用冲突。
cr315 发表于 2025-10-21 15:10 | 显示全部楼层
JTAG调试接口被占用了?
duo点 发表于 2025-10-21 16:12 | 显示全部楼层
PA15在STM32F103C8T6中默认可能被复用为JTAG/SWD功能(JTDI)。即使将其配置为GPIO输出,调试接口可能仍在占用该引脚。
elephant00 发表于 2025-10-21 15:12 | 显示全部楼层
在初始化前禁用JTAG/SWD功能仅保留SWD
flycamelaaa 发表于 2025-10-21 18:13 | 显示全部楼层
输出模式配置有问题
jcky001 发表于 2025-10-21 19:14 | 显示全部楼层
检查在配置GPIO前是否已启用AFIO时钟
onlycook 发表于 2025-10-21 20:15 | 显示全部楼层
用STM32CubeMX重新生成初始化代码
powerantone 发表于 2025-10-21 21:15 | 显示全部楼层
检查是否有其他代码意外修改了PA15的状态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

60

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部