你能帮我找出哪里出了错吗?LED在PA5端口上。
int main(void){
HAL_Init();
SystemClock_Config();
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE();
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);
while(1){
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(5000);
}
}发布于 2020-02-03 01:36:13
在微控制器上,引脚具有多种功能,启用哪种功能必须通过软件配置,有时还需要通过硬件配置(将引脚拉到VCC或GND等)。STM32L073xZ的PA5具有替代功能,请参阅第39页和第45页的数据表(https://www.mouser.de/datasheet/2/389/stm32l073v8-956245.pdf),Nucleo L073RZ上的单片机封装为LQFP64,参见第64页的https://www.st.com/content/ccc/resource/technical/document/user_manual/98/2e/fa/4b/e0/82/43/b7/DM00105823.pdf/files/DM00105823.pdf/jcr:content/translations/en.DM00105823.pdf中的Nucleo原理图(https://www.st.com/content/ccc/resource/technical/document/reference_manual/2f/b9/c6/34/28/29/42/d2/DM00095744.pdf/files/DM00095744.pdf/jcr:content/translations/en.DM00095744.pdf)。
我不知道您是否在其余代码中启用了备用函数,但是这可能是问题的核心。你发布的代码部分是准确的,在https://github.com/TechBreiteneder/00_GPIO_BlinkLED/blob/master/Src/main.c中是一个CubeMX项目中的发光二极管闪烁代码。因此,您可能在引脚PA5上启用了备用功能,此外,您还必须启用时钟系统等其他组件,才能使单片机工作。cf https://riptutorial.com/stm32/example/25059/first-time-setup-with-blink-led-example-using-sw4stm32-and-hal-library。因此,如果不知道MCU的配置,就很难说出错误在哪里……
你应该做的是在切换之前设置一个定义的初始状态,但我认为这不是问题所在
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN5, GPIO_PIN_RESET);https://stackoverflow.com/questions/59970599
复制相似问题