Reading signed data from RS232
显示 更早的评论
Hi,
I want to read 256 signed numbers from RS232. In Hyperterminal I see:
-54
-54
-54
-52
-55 . . . But when I read it in Matlab I saw something like that:
out=fread(s)
45 53 52 13 13 10 45 . . .
And if I convert "out" to char (val=char(out)) I haven't got 256 numbers, I have 45...I know that this problem is due to conversion into ASCII characters..
Can anybody give me a solution to read correctly the data?
回答(2 个)
Chirag Gupta
2011-4-19
0 个投票
Instead of using fread, try using fscanf where you can specify the format.
Ankit Desai
2011-4-20
0 个投票
You can provide the precision that you want to use with fread.
-Ankit
1 个评论
Walter Roberson
2011-4-20
Ankit, if you examine char([45 53 52]) you will find it is '-54' so the problem is not the precision the variables are written at, but rather that the data is being ASCII encoded and needs to be converted back to numeric form.
类别
在 帮助中心 和 File Exchange 中查找有关 Low-Level File I/O 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!