硬件:
达妙科技STM32F446:DM-MC01: DM MC-01 开发板资料
IMU:DM-MC01: DM MC-01 开发板资料
DDSM15:DDSM115 - Waveshare Wiki
支架:
通过网盘分享的文件:DDSM115电机支架
链接: https://pan.baidu.com/s/1_SZ01eK1aoizwttIJyTkLQ?pwd=dav5 提取码: dav5
实物图:
实现功能:
1.STM32F446控制电机、接收返回参数
2.读取IMU数值
3.返回参数通过虚拟串口查看
遇到问题:
返回数据错位,STM32F4接收参数时错位(手动分行,分成应该的样子方便看)
理论接收数据:
第n次:数据n(10个数字)
第n+1次:数据n+1(10个数字)
第n+2次:数据n+2(10个数字)
..........
第n+n次:数据n+m(10个数字)
..........
实际接收数据:a∈(0,10)
第n次:数据n(10个数字中第(a-10)个数字)+数据n+1(10个数字中第(0-a)个数字)
第n+1次:数据n+1(10个数字中第(a-10)个数字)+数据n+2(10个数字中第(10-a)个数字)
第n+2次:数据n+2(10个数字中第(a-10)个数字)+数据n+3(10个数字中第(10-a)个数字)
..........
第n+m次:数据n+m(10个数字中第(a-10)个数字)+数据n+m+1(10个数字中第(10-a)个数字)
..........
解决方法:DMA空闲中断
代码:
通过网盘分享的文件:STM32F446:DDSM115+IMU
链接: https://pan.baidu.com/s/1qlaqCkXClPLIQRacFUzrbQ?pwd=qucj 提取码: qucj
参考:
基于HAL库的STM32的串口DMA发送数据(解决只发送一次数据)及DMA+空闲中断接受数据_stm32串口dma只能发送一次-CSDN博客