When you connect the device to PC before you start it and then you start the PC , the BIOS will try to enumerate the device . In that case the while(!USBUART_1_GetConfiguration()); will pass and device will enter into the While(1) and do the application.
When the PC exits the BIOS and enters into the Normal mode , the PC will not know that this device has been connected and it will try to enumerate this device again . However in our code we handle the enumeration only outside the While(1) loop . We dont handle the enumeration inside it .
You need to modify the application code to handle the enumeration inside . You can use the USBFS_CheckActivity() API to see if you are have any USB Activity . If the activity does not happen for more than 1 second , then do the enumeration code (while(!USBUART_1_GetConfiguration());) again and see if it works .
If you are still facing an issue please create a Technical support case . Our engineers will assist you.