Quote Originally Posted by shoppinit
I mean, when I started developping the comms I wanted to use non-overlapping I/O so I could keep control over what was happening. The problem was that using non-overlapping my Tx thread would block until an Rx event occured. I couldn't get to the bottom of this so I switched to overlapped which works now... but the additional complexity worries me.

I've just tested the Rx and Tx at 60 per second and both the µC and the PC seem to be able to keep up so that's quite encouraging.
Wait a minute Ben. The PC side is extremely powerful. There should not be a problem here no matter what baud rate you are using.

You just need to design the right kind of driver using the Win32 API for your particular requirements. For your simple communication needs, I don't think that you need any kind of overlapped design. Nor do I think that you need send events or receive events on the PC side. You predominantly use interrupt supported polling on the microcontroller side. And you can probably very well get away with a simple polling thread on the PC side combined with a sensible use of the Sleep(...) function. Maybe you can handle send as well as receive within a single worker thread.

Can you try to re-think your design and get it as simple as possible? Also do make sure that you have full command of the RS232 in the Win32-API so that you are not struggling with two issues at once.

I have been really busy lately so I can't get all over this---maybe next week if you still need assistance at that time.

Sincerely, Chris.