12
返回列表 发新帖
楼主: 鹰宫璞爱惟

[求助] MKV30的ADC DMA模式能否不使用回调函数进行数据采集

[复制链接]
  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-2 15:45:13 | 显示全部楼层
    小恩GG 发表于 2020-12-2 14:46
    改成,接收串口发的指令以后,检查dma完成标志,完成发adc数据给串口,不完成就等待。 ...

    找到问题的根源了,是因为DMA 2.4ms才触发一次采样,回调函数的执行之间其实只有1.4us,所以和回调函数没关系,是因为DMA不是连续采样的,应该是你之前说的触发中断再开始采样,但是不用回调函数,我就无法启动DMA,这个问题怎么解决。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20138
    最后登录
    2024-5-5
    发表于 2020-12-2 15:49:26 | 显示全部楼层
    鹰宫璞爱惟 发表于 2020-12-2 15:45
    找到问题的根源了,是因为DMA 2.4ms才触发一次采样,回调函数的执行之间其实只有1.4us,所以和回调函数没 ...

    就是你原先程序,什么都不改,只是在接收串口指令时候,判断一下dma有没有完成,完成再传数据,没完成,你可以死循环等,也可以弄个超时退出,保证数据能更新
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-2 16:05:47 | 显示全部楼层
    小恩GG 发表于 2020-12-2 15:49
    就是你原先程序,什么都不改,只是在接收串口指令时候,判断一下dma有没有完成,完成再传数据,没完成, ...

    这样是不行的,我62us来一次中断,必须更新数据,如果强行等待设备就报错,而DMA2.4毫秒才启动一次,肯定是不行的,只有原先说的那种进中断开启DMA可靠,可是我打不开
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20138
    最后登录
    2024-5-5
    发表于 2020-12-2 16:13:40 | 显示全部楼层
    鹰宫璞爱惟 发表于 2020-12-2 16:05
    这样是不行的,我62us来一次中断,必须更新数据,如果强行等待设备就报错,而DMA2.4毫秒才启动一次,肯定 ...

    你有没有看给你发的链接,灵活adc多路采集,里面有传输完后就修正地址的,这样就不需要反复启动dma了,你看里面回调啥也没有。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-2 17:00:28 | 显示全部楼层
    您发的链接是错的,但是我找到了你发的帖子,已经将DMA修改为和你一样的,现在有个问题是,我用串口中断如何触发ADC,我用的DMA通道1和2,地址如何修正,我现在的还不行
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-2 17:02:05 | 显示全部楼层
    小恩GG 发表于 2020-12-2 16:13
    你有没有看给你发的链接,灵活adc多路采集,里面有传输完后就修正地址的,这样就不需要反复启动dma了,你 ...

    如果我还用之前的方法,有没有办法中断里面开启DMA,或者让DMA一只运行
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20138
    最后登录
    2024-5-5
    发表于 2020-12-3 10:54:34 | 显示全部楼层
    鹰宫璞爱惟 发表于 2020-12-2 17:02
    如果我还用之前的方法,有没有办法中断里面开启DMA,或者让DMA一只运行

    看附件,修改的是EDMA_Configuration,和Edma_Callback,修改的例程是adc16_continuous_edma,自己看。 adc16_continuous_edma.zip (2.15 KB, 下载次数: 4)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-3 14:49:13 | 显示全部楼层
    小恩GG 发表于 2020-12-3 10:54
    看附件,修改的是EDMA_Configuration,和Edma_Callback,修改的例程是adc16_continuous_edma,自己看。

    微信图片_20201203144710.png 我用了两个DMA,现在我还有一个通道2绑定ADC1,请问这个要回退多少,我这样写是对的吗
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-1-15 10:56
  • 签到天数: 39 天

    [LV.5]常住居民I

    21

    主题

    116

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    436
    最后登录
    2021-10-9
     楼主| 发表于 2020-12-4 14:26:17 | 显示全部楼层
    本帖最后由 鹰宫璞爱惟 于 2020-12-4 14:31 编辑
    小恩GG 发表于 2020-12-3 10:54
    看附件,修改的是EDMA_Configuration,和Edma_Callback,修改的例程是adc16_continuous_edma,自己看。

    已测试您发的例程,可以连续采样,但是每次采样间隔有1.4ms,感觉连续采样不适合我的应用。如何做到接收到串口中断去开启DMA采样呢,设置关闭低功耗,开启高速模式,也要720us
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-6 03:56 , Processed in 0.151899 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表