[第三方配套工具] 求助,有没有大佬用过dma加iic读取mpu6050数据

[复制链接]
2389|13
 楼主| quzer 发表于 2024-6-19 17:43 来自手机 | 显示全部楼层 |阅读模式
我在用dma加iic读取mpu6050数据时,试着用dma传输4个数,但是用freemaster查看数据以后,发现只有数组里面的第一个数有值,其他的都为0,而且发现没进dma传输完成中断,把传输数量改成1以后,就能进入dma传输完成中断,就好像dma只能传输一个数一样,有没有大佬知道这是怎么回事啊
yangxiaor520 发表于 2024-6-19 18:16 来自手机 | 显示全部楼层
不是啊,DMA的传输完成中断是可以设置字节数量的啊
jf101 发表于 2024-6-27 21:05 | 显示全部楼层
应该还是程序的问题
szt1993 发表于 2024-6-29 05:47 | 显示全部楼层
应该是DMA传输设置的问题
Belle1257 发表于 2024-7-10 12:13 | 显示全部楼层
在使用DMA(直接内存访问)和I2C(Inter-Integrated Circuit)读取MPU6050传感器数据时,如果遇到DMA只能传输一个数的问题,可能是DMA配置问题
Emily999 发表于 2024-7-10 12:17 | 显示全部楼层
看看DMA传输的大小是否与I2C读取的数据大小一致。如果I2C每次传输的数据量小于DMA配置的传输大小,可能会导致DMA提前结束传输。检查DMA传输的触发条件,确保在I2C数据准备好后才触发DMA传输
Allison8859 发表于 2024-7-10 12:20 | 显示全部楼层
确认使用的库函数或驱动程序是否支持多字节DMA传输
Candic12e 发表于 2024-7-10 13:21 | 显示全部楼层
检查DMA通道的配置是否正确,包括源地址、目标地址、传输大小和传输模式等。确保DMA通道没有被其他任务占用,且DMA请求源(如I2C)已经正确配置
Carmen7 发表于 2024-7-10 14:25 | 显示全部楼层
确认I2C的时钟频率、从机地址和读写模式等配置是否正确。检查I2C的初始化和启动传输的代码是否正确执行
Betty1299 发表于 2024-7-10 17:33 | 显示全部楼层
DMA中断是否正确配置,包括中断使能和中断优先级等。检查中断服务例程(ISR)是否正确编写,确保在中断发生时能够正确处理
alxd 发表于 2024-7-10 18:42 | 显示全部楼层
检查硬件连接是否正确,包括I2C总线的上拉电阻和MPU6050的电源供应等。确认MCU和MPU6050之间的通信是否正常,可以通过示波器或逻辑分析仪检查I2C信号
B1lanche 发表于 2024-7-10 19:57 | 显示全部楼层
一般来说,要检查是否有其他软件逻辑干扰了DMA传输,如内存保护、任务调度等
Charlene沙 发表于 2024-7-11 08:30 | 显示全部楼层
使用调试工具(如Freemaster)检查DMA和I2C的状态寄存器,确认传输状态。逐步调试代码,确保每个步骤都能按预期执行
Alina艾 发表于 2024-7-11 10:33 | 显示全部楼层
简化代码,只保留必要的DMA和I2C初始化及传输代码,排除其他干扰。并且参考MCU和MPU6050的数据手册和应用笔记,确认是否有特殊的配置要求
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部