MATLAB: Serial I/O not getting input

serialserial communication interfaceserial port

Hi,
I am attempting to communicate with an XBee radio through Matlab serial, and while I am able to send data successfully, I am having trouble getting anything from the input.
For example, I can send a message with the following code to a terminal program connected to a matched XBee radio:
s = serial('COM8');
fopen(s);
fwrite(s,'TestMsg');
However, if I send a message from the same terminal that received the Matlab message, I cannot detect the message in Matlab using fscanf(s), or setting up a bytesavailable event with:
s.BytesAvailableFcnMode = 'byte';
s.BytesAvailableFcnCount = 1;
s.BytesAvailableFcn = @instrcallback;
I know the message is going through the radios because if I connect to the same serial port with a another terminal program (PUTTY or X-CTU) it shows up, so it seems like the problem must be with Matlab.
Thanks for any help!

Best Answer

Actually I just figured out what was wrong. The XBee default configuration uses RTS flow control, so the XBee was not sending the data because Matlab wasn't asserting RTS. X-CTU on the other hand has an option to assert RTS that is on by default and I can only assume PUTTY also asserts RTS.
I hope this helps anyone else who runs into similar problems.
Related Question