MATLAB Answers

get continuous data in while loop through serial

46 ビュー (過去 30 日間)
Sharah 2019 年 1 月 18 日
編集済み: Sharah 2019 年 1 月 18 日
I need help with reading data from serial. Basically I have arduino that sends data "0" or "1" randomly every 2-4 seconds. When I save this data i will get 0 or 1. However, what I want is a continuous data, i.e. even when the true or false does not change, i still can record that. in this case have an array of 0 or 1 instead of 01010101. how can i do this? my code:
s = serial('COM13', 'BaudRate', 115200);
t1 = tic;
while (t<10)
x = fscanf(s)
t = toc(t1);
y = [y; t, x] % right now it's only 010101, but i want eg 00000011111111111110001111...
%with time stamp

回答 (1 件)

Walter Roberson
Walter Roberson 2019 年 1 月 18 日
You can test the BytesAvailable property of the port. If it is 0 then repeat your most recent reading . You might want to configure a timer object to sample at appropriate frequency .
  3 件のコメント
Sharah 2019 年 1 月 18 日
Actaully I made a mistake before and using the BytesAvailable works now. Many thanks for the suggested answer. DO you know any sample code that shows BytesAvailableFcn? I have never used it before. I need to read and store the data at 100Hz.



Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by