m0_69681472 2025-05-12 20:00 采纳率: 8.3%
浏览 61

stm32外部供电问题

用stm32f103c8t6做一个项目,之前用的是STlink连接stm32通过串口打印esp8266的连接信息,能够连接WiFi并且上报数据到云平台,现在想将程序下载到stm32之后断开stlink,使用MB102面包板电源模块给stm32供电, 但是复位之后stm32不知道是程序没有运行还是esp8266没有运行, 不知道是不是串口程序影响了还是说下载程序之后需要切换到什么模式才能运行,有uu能指导一下吗。

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-05-12 20:00
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    stm32外部供电问题

    你遇到的问题是:之前使用STlink连接STM32通过串口打印ESP8266的连接信息,能够连接WiFi并且上报数据到云平台,现在想将程序下载到STM32之后断开STlink。

    解决方案:

    1. 使用外部供电:STlink需要外部供电来供电STM32,否则STM32将无法工作。你可以使用一个外部电源(如USB电源或电池)来供电STM32。
    2. 使用BOOT0引脚:BOOT0引脚可以用来选择是否使用外部供电。如果你将BOOT0引脚连接到VCC引脚,STM32将使用外部供电。如果你将BOOT0引脚连接到GND引脚,STM32将使用内部供电。
    3. 使用BOOT1引脚:BOOT1引脚可以用来选择是否使用STlink。如果你将BOOT1引脚连接到VCC引脚,STM32将使用STlink。如果你将BOOT1引脚连接到GND引脚,STM32将不使用STlink。
    4. 重新烧写程序:在断开STlink的情况下,你需要重新烧写程序到STM32中。你可以使用Keil MDK或Arm Keil µVision等IDE来烧写程序。

    代码:

    // 重新烧写程序
    void main(void) {
        // 选择外部供电
        GPIO_InitTypeDef GPIO_InitStruct;
        GPIO_InitStruct.Pin = GPIO_PIN_0;
        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
    
        // 重新烧写程序
        HAL_FLASH_Unlock();
        HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, (uint32_t)0x08000000, (uint32_t)program);
        HAL_FLASH_Lock();
    }
    

    注意:上述代码只是一个示例,实际情况可能需要根据你的项目需求进行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月12日