ProcessDrawEvents processes all events that are related to the GUI: indicators update, graph drawing and so on. I does not process any mouse or keyboard or timer events nor any other event not related to GUI update. ProcessSystemEvents processes all pending events, either graphical or not. You can use the first to update your GUI when you have updates some controls / draw some graph and so on and do want to have the GUI reflects these changes before it will do naturally (at a callback completion for example).
ProcessSystemEvents can be used to process events that would be ignored if your program is tied in a loop that does not permit it to process them.
I suppose your question is related to
this other thread that is probably the most critical problem you are having at the moment: I cannot help you since I never used such aRS485 configuration: in normal RS232 or 4-wire RS485 communication you do not need any ProcessSystemEvents to receive responses from the attached hardware.