C++ 我在微控制器stm32f373 discovery中点亮LED时遇到问题

C++ 我在微控制器stm32f373 discovery中点亮LED时遇到问题,c++,c,microcontroller,stm32,iar,C++,C,Microcontroller,Stm32,Iar,我无法点亮微控制器设备discovery stm32f373中的LED 我使用STM32 cube mx和HAL库执行程序,但LED没有亮起。根据STM指示执行工作。第四课。哈尔图书馆。STM32立方体MX。LED和按钮 设置电源、输入和输出引脚 打开rcc->HSE总线 在时钟配置中,启用HSE。由以下操作配置 添加了一个无休止的循环来改变它。 我做的一切都对吗? 解释LED可能不亮的原因。 微控制器的引脚有自己的标识符。在哪里可以找到腿部信息?这个合适吗? 我使用了本课作者提供的英文文档,只

我无法点亮微控制器设备discovery stm32f373中的LED

我使用STM32 cube mx和HAL库执行程序,但LED没有亮起。根据STM指示执行工作。第四课。哈尔图书馆。STM32立方体MX。LED和按钮

设置电源、输入和输出引脚 打开rcc->HSE总线 在时钟配置中,启用HSE。由以下操作配置 添加了一个无休止的循环来改变它。 我做的一切都对吗? 解释LED可能不亮的原因。 微控制器的引脚有自己的标识符。在哪里可以找到腿部信息?这个合适吗? 我使用了本课作者提供的英文文档,只是控制器的版本。
LED引脚PC9、PC8

您需要第二个具有HAL_延迟的延迟。否则,切换LED,跳到while的开头,然后再次切换LED。因此,根据I/O的初始状态,LED可能只开启几个时钟周期

while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
}

您需要为LED连接的GPIO外围设备启用时钟,然后再将引脚设置为输出并尝试切换它们


在RCC->AHBENR中,有位用于打开和关闭各个GPIO端口时钟,GPIOD是位20,因此RCC->AHBENR |=1您是否在STM32CubeMX中将GPIO配置为输出


是否启用中断?如果没有,您将在调试时注意到HAL_延迟永远不会返回。尝试放置两个断点,看看您的while循环是否实际执行。

我添加了时间并更改了引脚,因为我在LED goes PD9和PD8I上有一个错误,我检查并将引脚更改为输出。有一个错误。我会再次尝试跑步。这毫无意义。由于它位于循环中,因此将运行完全相同的代码。
while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
    HAL_Delay(500);
    HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_8);
}