OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3139|回复: 4

STM32 DMA采集ADC完后怎么产生中断?

[复制链接]

23

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
602
金钱
602
注册时间
2017-8-8
在线时间
144 小时
发表于 2018-9-19 11:26:22 | 显示全部楼层 |阅读模式
1金钱
stm32 DMA采集ADC数,怎么产生中断?
采集3路ADC,开30个路组,每路10次平均,
uint32_t        ADC_TMP[30];
HAL_ADC_Start_DMA(&hadc1, ADC_TMP,30);

想让采集完30个数后产生一个中断,回调函数怎么写?
目前在while(1)大循环中计算ADC值,太慢了,
adc1=(ADC_TMP[0]+ADC_TMP[3]+.....ADC_TMP[27])/10.0;
adc2=(ADC_TMP[1]+ADC_TMP[4]+.....ADC_TMP[28])/10.0;
adc3=(ADC_TMP[2]+ADC_TMP[5]+.....ADC_TMP[29])/10.0;

想采集完30个数产生一个中断,提高实时性,
中断在哪里开?
回调函数怎么写?
QQ截图20180919112549.png


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
535
金钱
535
注册时间
2018-8-2
在线时间
54 小时
发表于 2018-9-19 14:19:31 | 显示全部楼层
回复

使用道具 举报

23

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
602
金钱
602
注册时间
2017-8-8
在线时间
144 小时
 楼主| 发表于 2018-9-19 16:04:15 | 显示全部楼层
tgw860910 发表于 2018-9-19 14:19
HAL_ADC_ConvCpltCallback

看看这个用不用得着

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
{
   adc1=(ADC_TMP[0]+ADC_TMP[3]+.....ADC_TMP[27])/10.0;
   adc2=(ADC_TMP[1]+ADC_TMP[4]+.....ADC_TMP[28])/10.0;
   adc3=(ADC_TMP[2]+ADC_TMP[5]+.....ADC_TMP[29])/10.0;
   PID(); //PID调节
   HAL_GPIO_TogglePin(Test_GPIO_Port,Test_Pin); //根据IO口频率推算运行速
}
这样可以了,但又有新问题了,
回调太快了,Test I/O口频是20KHz
程序中还有TIM1是1ms定时器,TIM2是2ms定时器,
导致while(1)大循环里的程序不会执行,
把ADC采样次数提高,I/O口约3KHz时,while(1)大循环里的程序才会被执行,
但这样采样速度又变慢了,
回复

使用道具 举报

0

主题

31

帖子

0

精华

高级会员

Rank: 4

积分
535
金钱
535
注册时间
2018-8-2
在线时间
54 小时
发表于 2018-9-20 08:31:44 | 显示全部楼层
lovewjl 发表于 2018-9-19 16:04
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
{
   adc1=(ADC_TMP[0]+ADC_TMP[3]+... ...

首先,你要确定你的PID运算周期,这个可以放在一个定时器里处理,不需要放在ADC转换完成回调函数里;然后,你又想采样快,又想其他任务也得到很多的运算时间,这个是办不到的吧,CPU就一个,总得有先有后,你自己平衡一下
回复

使用道具 举报

32

主题

1938

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4258
金钱
4258
注册时间
2018-5-11
在线时间
885 小时
发表于 2018-9-20 13:05:43 | 显示全部楼层
没有用过HAL库,很抱歉,无法帮你。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-3-29 17:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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