Unity与串口通讯

本文介绍了在Unity中进行串口通讯时遇到的问题及解决方法,包括Unity .Net版本要求、SerialPort API的使用细节、数据读取的常见问题以及串口数据回调事件的不可靠。建议开发者注意数据协议处理、自行实现数据接收线程,并提供了一个测试Demo的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值