java串口怎么发送数据_Java串口写/发送ASCII数据

我的问题是我需要通过蓝牙在Java中控制移动机器人E-puck,通过发送命令如“D,100,100”来设置速度,“E”来获得速度等等.我有一些代码:

String command = "D,100,100";

OutputStream mOutputToPort = serialPort.getOutputStream();

mOutputToPort.write(command.getBytes());

所以用这种方法写我只能发送byte []数据,但我的机器人不会理解.

例如,以前我一直在Matlab上使用这样的命令:

s = serial('COM45');

fopen(s);

fprintf(s,'D,100,100','async');

或仅限程序Putty类型:

D,100,100 `enter`

附加信息:

我也想通了,Matlab有另一个解决方案.

s = serial('COM45');

fopen(s);

data=[typecast(int8('-D'),'int8') typecast(int16(500),'int8') typecast(int16(500),'int8')];

在这种情况下:

data = [ -68 -12 1 -12 1];

fwrite(s,data,'int8','async');

在Java中不一样吗:

byte data[] = new byte[5];

data[0] = -'D';

data[1] = (byte)(500 & 0xFF);

data[2] = (byte)(500 >> 8);

data[3] = (byte)(500 & 0xFF);

data[4] = (byte)(500>> 8);

然后:

OutputStream mOutputToPort = serialPort.getOutputStream();

mOutputToPort.write(data);

mOutputToPort.flush();

解决方法:

代码注释中的主要细节.现在,您可以通过在命令窗口D,1000,-500中键入并按Enter键来更改车轮速度.

public class serialRo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值