完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这边博客主要是对前面两篇博客的一个补充(ROS使用STM32F407ZGT6作为底盘控制器、ros下使用rosserial和STM32F1/STM32F4系列进行通信(MDK5工程)),再次说明一下本文的主要参考:
1、https://blog.csdn.net/ykevin0510/article/details/72725633?locationNum=7&fps=1 2、rosserial的详细介绍:http://wiki.ros.org/rosserial 3、rosserial_client的介绍:http://wiki.ros.org/rosserial_client 4、rosserial_client的教程程:http://wiki.ros.org/rosserial_client/Tutorials 5、rosserial协议的介绍:http://wiki.ros.org/rosserial/Overview/Protocol 下面我们开始进入正文: 首先看一下整个工程的文件目录: Bsp文件夹主要放一些配置文件,包括串口、延时、收发的数据定义 Driver文件夹下主要放外设的驱动代码,包括ADC、LED、IMU、OLED、Encoder、Servo等等、如下图: RosLibs文件夹下主要放ros_lib的文件,如下图: 然后其他的文件就是STM32开发的依赖,这个不做过多讲解。如果不会新建STM32工程的请参考正点原子的库函数教程,本文的知识就是参考了正点原子的库函数教程,可能很多同学会喜欢使用HAL库来进行开发,HAL库可以使用STM32Cube进行图形化配置和初始化IO,但是我个人感觉看代码的话没有那么容易明白,可能之后也会学习吧,如果使用HAL库的话推荐学习的资料是硬石科技录制的视频教程,这些资料在(哔哩哔哩)bilibili上面都有的,我们先看一下STM32Cube图形化的图片 上面可能废话有点多下面就主要讲解移植中需要注意的问题吧: 首先我们要先确认我们的串口程序可以进行正常收发,可以直接使用正点原子的串口,使用串口助手进行测试: 然后就是配置我们的STM32系统时钟,因为要和ROS进行通信,那么他们的时钟上就要保持同步否则就会出现(与设备不同步,正在重启的错误),本文使用的是SysTick心跳用中断进行计数,然后把当前的计数值返回如下图: 配置完了这些就到了配置和ros_lib相关的部分了 首先我们找到STM32Hardware.h文件然后进行如下修改: 这里主要是把我们写好的串口程序给替换掉就可以了 然后就是箭头部分就是我们上面系统时钟所写的millis()函数 到这里的话就参不多配置完成了,这里主要是讲解,大家有需要的还是直接下载ros下使用rosserial和STM32F1/STM32F4系列进行通信(MDK5工程)这个工程师完全可以使用的,希望我写的博客可以给大家一些帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 01:26 , Processed in 0.612766 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号