![]() |
|
在机器人控制中,单片机(Arduino/STM32)与上位机(Raspberry Pi/NVIDIA Jetson nano)之间的通信经常采用串口通信的方式,那应该如何使用STM32的串口通信以及根据自己定义的协议来完成数据的接收与发送呢? 确定串口的数据协议 "e" 反馈两个电机的编码器脉冲计数值,该计数值达到Z大值或Z小值时自动清零。 "m" l_speed r_speed "m"为控制标志,l_speed为左轮的速度值,r_speed为右轮的速度值,该值单位为 cm/s 配置串口 为了提G串口通信的效率,减少因为字节传输而不断引起中断导致资源的浪费,可以采用DMA+串口空闲中断的方式对数据进行接收。 DMA DMA:Direct Memory Access,可以实现一个数据从一个地址空间拷贝到另一个地址空间,并且在数据拷贝过程中无需CPU的干预,在数据拷贝结束后才告知CPU进行处理。因此使用DMA功能可以释放CPU资源。 串口空闲中断 普通的串口处理数据方式为单字节接收,并且接收一帧数据时,需要自行判断帧头帧尾确定是否为一帧完整数据,并且当数据量大会导致频繁进入中断。而采用串口空闲中断,在串口空闲时(发送完一帧数据)产生中断,并且可以在中断服务函数中计算得到的数据长度,对整帧数据进行处理。 STM32CubeMX中的配置 在串口1配置中打开DMA功能,其余配置可参考之前的工程
|
| 推荐信息 |
| »STM32CubeMX配置及测速驱动代码 |
| »两轮四轮差速及阿克曼移动底盘设计转向机器人/小车 |
| »动手实现一台阿克曼ROS小车 |
| »四轮驱动机器人的转向方式是什么 |
| »全向轮运动模型规律-量化分析三个全向轮转速与移动平台中心点运动速度的关系 |
| »三轮全向轮移动平台坐标系说明示意图 |
| »麦克纳姆轮运动速度分解-麦轮平台运动学模型分析 |
| »麦克纳姆轮受力分析-受力方向为轮毂坐标系y轴正方向 |
| 版权所有 © 北京创泽智慧机器人科技有限公司 地址:北京 清华科技园C座五楼 电话:4006-937-088 京ICP备20010582号-2 |