你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32F7 ADC DMA回调函数的问题

[复制链接]
安静ing 提问时间:2018-1-30 11:37 /
刚玩HAL库 不是很熟不清楚ADC DMA的完成标志到底是哪个或完成中断求教
我用HAL_ADC_ConvCpltCallback做为完成标志但波形不是连续的如下
捕获.PNG
我单次采2048点的波形到是挺好的
捕获2.PNG

收藏 评论7 发布时间:2018-1-30 11:37

举报

7个回答
wenyangzeng 回答时间:2018-1-30 12:24:59
如果配置了DMA中断,就调用:
ADCx_DMA_IRQHandler();
如果DMA中断没有配置,才用ADC中断
ADC_IRQHandler()

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

安静ing 回答时间:2018-1-30 13:21:28
wenyangzeng 发表于 2018-1-30 12:24
如果配置了DMA中断,就调用:
ADCx_DMA_IRQHandler();
如果DMA中断没有配置,才用ADC中断

中断是调用了ADCx_DMA_IRQHandler(); 但我要取数据返回的完成标志位是那个哇
morphlings2014 回答时间:2018-1-30 13:24:32
看F7CUBE的ADC_DMA demo,虽然DMA中断和ADC中断都开了,但是完成标志位都是在HAL_ADC_ConvCpltCallback里面设置的。
我L4的多路获取值也是用的这个,暂时没发现问题。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

安静ing 回答时间:2018-1-30 13:26:42
morphlings2014 发表于 2018-1-30 13:24
看F7CUBE的ADC_DMA demo,虽然DMA中断和ADC中断都开了,但是完成标志位都是在HAL_ADC_ConvCpltCallback里面 ...

我也是在HAL_ADC_ConvCpltCallback里设的很奇怪
wenyangzeng 回答时间:2018-1-30 14:16:13
安静ing 发表于 2018-1-30 13:21
中断是调用了ADCx_DMA_IRQHandler(); 但我要取数据返回的完成标志位是那个哇

你应该在DMA中断里设置1个自己的标志位。在读取了数据后清除标志位。
dzzwoaizi 回答时间:2018-1-30 14:43:58
不管是HAL还是标准库,最终还是要回归寄存器,看寄存器最直接了当

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

安静ing 回答时间:2018-1-30 16:11:59
捕获.PNG
缓存提取一起放到HAL_ADC_ConvCpltCallback就好了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结帖奖励

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版