Just buy ST-LINK2 on aliexpress:
it allows to flash STM32 even if it is bricked. You will need to connect GND=GND, VDD=3.3V, SWDIO=SWDIO, SWCLK=SWCLK. These signals are placed near boot jumper on the right side of nanoVNA.
In order to flash you will need ST-LINK Utility:
Connect ST-LINK to NanoVNA, start ST-LINK Utility, and set the following values in the window:
Address: 0x08000000
Size: 0x20000
Data width: 8 bits
After that select menu: Target => Connect, it should connect to STM32 and show it's memory content.
Use File => Open file menu to open HEX file with NanoVNA firmware.
And then flash it into NanoVNA with menu Target => Program and verify
That's it :)
See HEX file with NanoVNA firmware in attachment.
Also, you can try to reflash it with DFU. Just connect USB cable, power off NanoVNA, short the boot jumper and power on NanoVNA, after that remove boot jumper and try to flash it with DFU again.
But DFU is not reliable way to flash it. So, if it won't work just buy ST-LINK and use instruction above. ST-LINK is native way to flash STM32. While DFU is just a way to flash it for those, who don't have ST-LINK. But flashing through DFU is buggy and not reliable way to flash it. It's better to use ST-LINK. But note, ST-LINK uses HEX or BIN format, it cannot understand DFU file.