打印
[第三方配套工具]

求助,有没有大佬用过dma加iic读取mpu6050数据

[复制链接]
1603|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传输设置的问题

使用特权

评论回复
5
Belle1257| | 2024-7-10 12:13 | 只看该作者
在使用DMA(直接内存访问)和I2C(Inter-Integrated Circuit)读取MPU6050传感器数据时,如果遇到DMA只能传输一个数的问题,可能是DMA配置问题

使用特权

评论回复
6
Emily999| | 2024-7-10 12:17 | 只看该作者
看看DMA传输的大小是否与I2C读取的数据大小一致。如果I2C每次传输的数据量小于DMA配置的传输大小,可能会导致DMA提前结束传输。检查DMA传输的触发条件,确保在I2C数据准备好后才触发DMA传输

使用特权

评论回复
7
Allison8859| | 2024-7-10 12:20 | 只看该作者
确认使用的库函数或驱动程序是否支持多字节DMA传输

使用特权

评论回复
8
Candic12e| | 2024-7-10 13:21 | 只看该作者
检查DMA通道的配置是否正确,包括源地址、目标地址、传输大小和传输模式等。确保DMA通道没有被其他任务占用,且DMA请求源(如I2C)已经正确配置

使用特权

评论回复
9
Carmen7| | 2024-7-10 14:25 | 只看该作者
确认I2C的时钟频率、从机地址和读写模式等配置是否正确。检查I2C的初始化和启动传输的代码是否正确执行

使用特权

评论回复
10
Betty1299| | 2024-7-10 17:33 | 只看该作者
DMA中断是否正确配置,包括中断使能和中断优先级等。检查中断服务例程(ISR)是否正确编写,确保在中断发生时能够正确处理

使用特权

评论回复
11
alxd| | 2024-7-10 18:42 | 只看该作者
检查硬件连接是否正确,包括I2C总线的上拉电阻和MPU6050的电源供应等。确认MCU和MPU6050之间的通信是否正常,可以通过示波器或逻辑分析仪检查I2C信号

使用特权

评论回复
12
B1lanche| | 2024-7-10 19:57 | 只看该作者
一般来说,要检查是否有其他软件逻辑干扰了DMA传输,如内存保护、任务调度等

使用特权

评论回复
13
Charlene沙| | 2024-7-11 08:30 | 只看该作者
使用调试工具(如Freemaster)检查DMA和I2C的状态寄存器,确认传输状态。逐步调试代码,确保每个步骤都能按预期执行

使用特权

评论回复
14
Alina艾| | 2024-7-11 10:33 | 只看该作者
简化代码,只保留必要的DMA和I2C初始化及传输代码,排除其他干扰。并且参考MCU和MPU6050的数据手册和应用笔记,确认是否有特殊的配置要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝