在ROS中与其他器件使用十六进制串口通信

      第一次自己写博客,有什么问题请@我。

首先非常感谢一位网友的博客(点击打开链接),他在ros上使用了串口通信,不过使用的是字符串,因为项目需要,我在其基础了改成十六进制,并发布接收十六进制数组主题。

需要特别说明的是,你根据上面这个博客(点击打开链接)在进行自定义你的消息时,如果是同一工作空间

add_dependencies(test1 test_msgs_gencpp)#调用同一工作空间的自定义消息类型时注明依赖关系,防止发生头文件找不到报错
在添加上面一行代码后还找不到头文件时, 需要在 CMakeLists.txt 文件中添加这行代码,否则找不到msg.h文件  


点击打开链接微笑我在这里卡了好久,一直找不到自己生成信息的.h文件,后来才发现的。

现在说到主题了,如何传输十六进制数。

首先 定义自定义.msg文件。

uin8[] serial
此类数组实际上是vector类型,它并没有定义长度,你可以使用几种方法赋值,具体参考( 点击打开链接)。vector类型还有一个很好的文章是( 点击打开链接)写的很nice,收益很多。从串口读写数据的函数为serial包中的
 ser.read(r_buffer,rBUFFERSIZE);
 ser.write(r_buffer,rBUFFERSIZE);
具体可参考链接( 点击打开链接

还有一个小的知识点,如果你编译时找不到catkin包中安装的头文件,即就是你在catkin-ws中安装了serial包,但是在安装其他包时需要serial/serial.h的头文件却找不到时,需要在CMakeLists.txt 文件中添加这行代码,否则找不到catkin空间中的包

Include_directiones(catkin_include_dirs)

总结一下,学好C++,感谢各位博主。大笑

最后放上我的源码链接(点击打开链接

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值