
请问各位,我使用CubeMX生成STM32F103C8T6的DMA ADC代码,工程配置请看附件,我运行如下代码为什么无效: /* USER CODE BEGIN Includes */ #include "main.h" #include "stdio.h" uint32_t ADC_Value=0; int main(void) { HAL_Init(); SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC1_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ printf("---211220---\r\n"); HAL_ADC_Start_DMA(&hadc1,&ADC_Value,1); printf("Value=%d\r\n",ADC_Value); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) {} } 输出结果总是“0”。 |
串口输出的ADC值
ADC-CubeMX.rar
下载2.6 KB, 下载次数: 4, 下载积分: ST金币 -1
配置
利用stm32f412 的SPI 的DMA 模式读取外部ADC数据如何提高效率
FW_H7 V1.12.1-HAL库DMA双缓冲配置
STM32H7+SAI+DMA双缓冲配置失败.
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
STM32F103烧录程序后电流变大
STM32F103CBT6读取单总线温湿度传感器,需要手动重启。
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
求教學stlink v3 set** 怎麼和**blue pill**連結傳輸寫好的程式
F103和G474的180°移相區別
怎么下载stm32f103zet6的spice模型,没找到
弄个延迟试一试
一定要把MX_DMA_Init()初始化放在ADC1初始化前面,因为ADC初始化最后会调用ADC_MSP,此时会设置DMA的参数,由于DMA的时钟还没有开启,DMA的设置是无效的,可以说是cubemx的bug, 除非要进入到高级页面,刻意把初始化的顺序排正确,否则默认的排序是有问题的.
现在MX_DMA_Init()放在ADC前面初始化了,和之前是有变化,可是值好像一直不变。没有随着电压变化,还有可能是哪里的问题?
谢谢,我在HAL_ADC_Start_DMA()后面加了HAL_Delay(500),没效果。
楼主,请确定配置采集的IO口电压是多少。最好描述一下采集的IO口,还有ADC的带贴一下。仿真枪模式下,HAL_ADC_ConvCpltCallback这个是采集完成后调用的回调函数,是否可以进入?
通过仿真,发现ADC的DR寄存器是有变化的,但是DMA寄存器没变化。
楼主,您好。删除AN1的配置试试,另外看一下DMA是否能够产生中断,DMA和ADC的寄存器检查一下。
ok.
还要注意DMA初始化顺序要先于外设配置,这个你可能知道了,还是提醒下。
另外,你如果是调用HAL_ADC_Start_DMA(&hadc1, ADCData, 1);函数的话,ADCdata的数据宽度定义为32位。那么在CubeMx配置DMA的那个地方,Memory宽度选择为WORD。你不妨验证之。