Simple Matlab & Arduino Serial Communication

Asked by Tyler about 9 hours ago
Latest activity Edited by Tyler about 9 hours ago

I am attempting a running the following program and am getting strange results. After opening the serial port, the Arduino sends a "Ready" command to matlab. Then it sends a uint16 (2 bytes) value of 500 to the arduino. The arduino simply echoes what was received back to matlab in HEX.

When I run this I expect readData to equal 0x01F4, but I get 0xC0F4. Any suggestions?

Arduino CODE:

byte incomingByte1;
 void setup(){
  pinMode(2,OUTPUT);
  Serial.begin(115200);
  Serial.println("Ready");       
}
 void loop() {
  digitalWrite(2,LOW); //turn off LED
  delay(500);
if (Serial.available() > 0) { 
 digitalWrite(2,HIGH); //flash LED everytime data is available
 delay(500);
 incomingByte1 = Serial.read(); //read incoming data
 Serial.println(incomingByte1,HEX); //print data
}
}

Matlab CODE:

 clear
 clc
s=serial('COM7','BaudRate',115200);
fopen(s);
 readData=fscanf(s) %reads "Ready" 
writedata=uint16(500); %0x01F4
fwrite(s,writedata,'uint16') %write data
 for i=1:2 %read 2 lines of data
readData=fscanf(s)
end
 fclose(s);
 delete(s);

OUTPUT:

 readData =
 Ready
 readData =
 F4
 readData =
 C0

0 Comments

Tyler

Products

No products are associated with this question.

0 Answers

Contact us