rosserial移植到STM32(CUBEMX+HAL库)

rosserial的作用

使用过ros的话都会了解过ros特殊的通信机制,通过话题的发布和订阅来进行通信。
有时候我们需要从PC端的串口与单片机进行通信,我曾试着直接调用串口与STM32进行数据传输,但是数据非常不好处理,自己定协议也是一个非常麻烦的事情,还经常出现一些奇怪的乱码,如果能在STM32上模仿ros直接发布或订阅话题并能够使用ros的数据类型就好了。
我曾在ros的官网上看到有将rosserial移植到arduino的教程,当移植成功后可以将arduino当成一个节点直接订阅ros通信网络上的话题,也可以直接往ros的通信网络发布话题,但是坑爹的是ros官网没给STM32的移植教程。
网上也有一些大佬用标准库移植过,但写的不明不白,我花了大量精力将大佬的代码看懂并强行移植到HAL库,最后确实能用,但代码看起来非常恶心。直到今天我发现了一种非常简单的移植方法,可以将代码搞得非常漂亮,为了让大家少踩坑,我将移植过程写出来供大家参考。

需要实现的功能

我们从PC端发布一个话题为pc_to_stm32的std_msgs::String类型数据,单片机订阅该话题,并将该数据通过话题stm32_to_pc发布出来。

移植步骤

  1. 首先我们建一个CUBEMX工程
    在这里插入图片描述
  2. 选好你的芯片的型号,我的单片机是F103ZET6
    在这里插入图片描述
  3. 分别配RCC ,SYS,TIM2,USART
    在这里插入图片描述
    在这里插入图片描述
  4. 配时钟树,这里我配64MHZ
    在这里插入图片描述
  5. 配USART波特率,这里我配57600,因为这是serial_no
评论 121
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值