I'm using a clone Arduino Nano with an ATmega328P and a CH340 USB chip.
When I upload code the first time, it works fine. But when I try to upload a second sketch or upload again, it just gets stuck on "Uploading…" in the Arduino IDE
I can fix this by reburning the bootloader using a USBasp and this AVRDude command:
There are lock bits to protect the bootloader section from a software update you have to set.
With USBasp it is able read out everything from ATmega to check the settings - flash, fuses, etc.
Welcome!
I have seen that many times. Most of the time, cycling the power, closing the IDE and reloading it solves the problem. Nice part the IDE automatically reloads the sketch I was working on. Generally a shorter cable will give better results. I also add a delay(3000) or something like that in the setup() just after I set the baud rate. This allows things to settle down and If my software floods (locks up by constantly printing) it gives me a moment to recover.