直击翻车现场:STM32 GPIO 无法输出的问题
作者:互联网
问题描述
平台:STM32F103RBT6,其中有GPIO 输入,也有GPIO输出,其中LED指示灯(GPIO 输出)。
发现,程序烧写后,代码正常跑,配置的GPIO 引脚,没有电平输出。
问题分析
- 开始以为代码有问题,所以,软件调试,发现可以正常的跑。
- 串口打印,发现程序能正常的执行!!
- 确认引脚配置正确后,开始认真的分析,发现,GPIO 的寄存器配置,感觉已经配置了推挽输出!!
- 检查硬件,发现焊接良好。
- 对比官方的GPIO配置,发现了一点问题。GPIO 的速率,没有配置!!
问题解决
原来配置GPIO时,上面有GPIO 输入,没有配置SPEED,配置输出时,直接复制粘贴后,改为了PP推挽输出,没有配置SPEED。
/* LED_PIN_RUN2 */
HAL_GPIO_WritePin(PORT_LED_PIN_RUN2, LED_PIN_RUN2, GPIO_PIN_RESET);
GPIO_InitStruct.Pin = LED_PIN_RUN2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; /* 注意,需要配置!! */
HAL_GPIO_Init(PORT_LED_PIN_RUN2, &GPIO_InitStruct);
反思
- 其实都是懒引起的,代码,不能总是复制与粘贴。
- 认真分析问题,认真总结。
标签:RUN2,LED,直击,PIN,配置,STM32,InitStruct,GPIO 来源: https://blog.csdn.net/tcjy1000/article/details/113776413