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

关于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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版