ST意法半导体
直播中

李雪

7年用户 889经验值
私信 关注
[问答]

STMCubeIDE使用Timer3触发ADC1转换+DMA传输不起作用怎么解决?

我有一个 STM32F103C8T6 bluepill 开发板。我正在尝试使用 timer3 来触发 ADC1 转换 + DMA 传输。
这个想法是:当定时器 3 触发 ADC1 时,转换开始并且 dma 以循环模式将转换结果传输到缓冲区。
我正在使用 STMCubeIDE。
在 TIM3 模式和配置中,在参数设置选项卡中,在触发输出 (TRGO) 参数字段中,我设置了触发事件选择,如更新事件。这些设置如下图所示。
没有模式和配置 ADC1 fiz seguinte configuração。

编码:
/* 私有变量-------------------------------------------- ----------*/
ADC_HandleTypeDef hadc1;
DMA_HandleTypeDef hdma_adc1;
TIM_HandleTypeDef htim3;
/* 用户代码开始 PV */
#define布夫伦 10
uint16_t dmaBuffer[Buflen];
/* 用户代码结束 PV */
/* 用户代码开始 2 */
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_TIM_Base_Start(&htim3);
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)dmaBuffer, Buflen);
/* 用户代码结束 2 */
/* 用户代码开始 4 */
void HAL_ADC_ConvCptCallBack(ADC_HandleTypeDef* hadc){
        HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6);
}
/* 用户代码结束 4 */
它不工作。我正在使用示波器来分析 GPIO PA6。那里什么也没有发生。正确的是我会在这个端口看到一个方波。即每 10 次转换,引脚切换状态。
可能是什么?为什么它不起作用?









回帖(1)

陈辉

2022-12-6 10:31:45
正确的:void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc1){
举报

更多回帖

发帖
×
20
完善资料,
赚取积分