cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743VIT6 Stuck in DFU Mode (USB FS) after flashing USB CDC Application

Kylynn
Visitor

I am trying to get the USB CDC (Virtual COM Port) working on my STM32H743VIT6. I have successfully used this exact setup in the past, I would normally flash the code via ST-Link, plug in the USB micro USB cable, and the COM port would appear in Device Manager for Tera Term.

However, currently, the device refuses to exit DFU mode and enumerate as a COM port, even after flashing the application code.

step that i have done:

1. I pull BOOT0 to 3.3V to enter the bootloader. Device Manager correctly shows DFU in FS Mode

2. I upload my .elf file (My application code includes HAL_PWREx_EnableUSBVoltageDetector(); in main().) using STM32CubeProgrammer. The upload verifies successfully.

3. I disconnect power, move BOOT0 to GND, and reset

Issue: The Device Manager still shows "DFU in FS Mode". It does not switch to the Virtual COM Port (CDC).

My Question: What specific steps should I take to force the board to exit DFU mode.  I want the device to boot directly into my application and enumerate as a COM Port automatically, without requiring BOOT0 manipulation every time.

Screenshot 2026-01-26 203940.png

 

 

 

 

3 REPLIES 3
TDK
Super User

If you hold reset, does the device disappear? And it re-appears when you release reset?

The reasons the chips boots into the bootloader are listed in AN2606. There are a multitude of ways to boot directly into the flash. You need to configure one of those. These involve a combination of option bits and the BOOT0/BOOT1 pins.

If you feel a post has answered your question, please click "Accept as Solution".

yes, when i hold reset the device disappear and then show again when i release reset. 
Here are my address Option Bytes. I have never configured them before, but they show that BOOT_CM7_ADD0 is 0x0800 the start of Flash memory and ADD1 is 0x1ff0 the start of System Memory. Does this mean my system is fine and my chip is not confusing DFU and Flash modes?
Screenshot 2026-01-26 214644.png

 

TDK
Super User

It sounds like you are not controlling the BOOT pin as you think. This could be due to a test setup error, or a bad solder connection, or something else.

Here are the possible ways for it to get into the bootloader:

TDK_0-1769353398652.png

 

It's also possible your user program jumps to the bootloader if that's something you have programmed into it.

If you feel a post has answered your question, please click "Accept as Solution".