我有一个程序,涉及连续读取串口,然后进行一些处理。由于处理,我在读取值时有一些延迟(我逐行读取)。一旦用户按下停止,读取停止,我不确定缓冲区是否被完全读取。我知道缓冲区中会有一些数据,一旦关闭,我就不想松开它。有没有办法一次读取整个缓冲区的内容?
我尝试了fscanf(comport),但它只读了一个元素。
我知道fread会读取整个缓冲区,但我不知道如何将二进制文件转换为字符串并获取有用的数据。
由于
答案 0 :(得分:0)
如果你可以通过fread阅读全部内容,那么只需要格式化。你可以将所有数字作为数字,并转换为char:
u8 = fread(comport, comport.BytesAvailable); % uchar, but in double
ch = char(u8);
这应该在缓冲区中为你提供所有字符串。