Unity与硬件交互的时候通常会用到串口,经常会遇到和硬件工程师对通讯协议,前段时间做这块的时候发现了好多的问题,踩了好多的坑,So,记录一下那些坑爹的东西
1,unity使用的.Net的版本需要设置到4.0以上,2.0的.net是没有串口这个api的
2,我们在查看SerialPort的文档的时候会发现,哇!这个和socket有点类似好多的函数都差不多,但是其实不是这样,串口发送数据的时候可以说是发送的字符数据,就是我们在操作的时候,虽然给串口数据传的数据是字节数组,但是这个字节数据是有字符数据转的
3,我在用read,readbyte,readchar,readexisting,readline读取数据的时候经常会出现问题,下面列举一些我总结的这几个函数的用法,以及使用的时候碰到的问题
public int Read(byte[] buffer, int offset, int count);
解释:向字节数组读取数据,但是当我用串口调试的时候发现,串口助手发送的数据字符数大于2个的时候,这个函数会分两个接收,第一次接第一个字符,第二次接剩余的字符
public int Read(char[] buffer, int offset, int count);
解释:这个函数用的时候接受不到数据,不知道是什么问题
public int ReadByte();
解释:单个字节读取数据:比如;:串口助手发送的是1,那接收的数据是49,但是我们要的是真实数据1,,所以我们需要,把这个值转化为字节然后再转化为字符,,输出字符
p