赞
踩
我的目的是使用定时器触发adc采样,采样频率是500khz,在DMA传输完500个数据之后,求这500个数据的平均值,通过串口发送出去,相当于串口接收端的采样频率是1khz。
生成代码后调用以下函数开启DMA传输和相关中断
HAL_TIM_Base_Start_IT(&htim2);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
HAL_ADC_Start_DMA(&hadc1, (uint32_t *);
在中断服务函数中求平均值
HAL的DMA传输完成中断服务函数跟其他中断服务函数(比如串口、定时器)不一样,不是weak的,好像用户不能重定义,只能使用自动生成的中断服务函数,这个中断服务是在库函数HAL_ADC_Start_DMA中被关联的,
所以找到ADC_DMAConvCplt之后,将自己的代码加入到里面就可以啦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。