前言:之前ROS跟单片机的底层通讯主要是通过串口自定的协议来做,比如官网提供的arduino串口驱动一样,需要ROS往下发一个指令,单片机再回传一个指令,要写一大堆的协议,这样很麻烦,效率也比较低,

想着如果stm32也能像ROS一样,进行订阅发布,不去管其中的协议那样就方便多了,基于这种想法,于是乎查了很多资料,发现了一个大神做了类似的工作:http://blog.csdn.net/wubaobao1993/article/details/70808959

具体就是移植了ros_lib,里面居然还有keil工程,下载下来稍微改改就能用了,感谢这位大神!

废话少说,上代码:

main函数:

主程序主要是订阅和发布程序,类似官网C++教程。

超声波读取程序:

STM32发布后,ROS端启动rosserial

 rosrun rosserial_python serial_node.py /dev/ttyUSB0

然后订阅

最后上一张测试效果图:

20ms读取一次,数据很稳定!