野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14426|回复: 4

STM32ADC(DMA方式)遇到问题

[复制链接]
发表于 2015-2-5 16:36:00 | 显示全部楼层 |阅读模式
int main(void)
{       
                int i;
                LED_GPIO_Config();
                USART1_Config();       
                DMA1_ADC1_Config();
                ADC1_Init();
                DMA1_USART1_Config();

                printf("\rHello Word\n");
                                ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // ¶áè¡×a»»μÄADÖμ
                for(i=0;i<SENDBUFF_SIZE;i++)
                {
                       
                                SendBuff[i]         = ADC_ConvertedValue;
                                printf("\r\n The current AD value = 0x%04X \r\n", ADC_ConvertedValue);
                                printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
                                Delayms(62500);  
                }
                        USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);
        //                Delayms(62500);  
       
        while (1)
                {
                               
                                LED1(ON);
                                Delayms(6250);
                                LED1(OFF);
                                Delayms(6250);
                }
       
       
}

这是我参照野火的例程写的一个程序,就是用DMA1通道1读取ADC1采集到的电压值并将其存入内存中,再通过DMA1通道4读取该值并且用串口USART1上传至上位机,同时让LED1闪烁。ADC和DMA的配置没有问题,可以在串口助手上看到电压值,电压值没有问题,但是灯不会闪。关掉串口后开发板上的串口灯灭了,过了一会儿灯闪烁了,打开串口后接受到的值都是00(HEX显示)。调试设置断点,发现STM32一直卡在for循环里面,有没有人知道或者遇到过这样的问题,DMA传输数据时不是和CPU没有干涉么?

回复

使用道具 举报

发表于 2015-2-5 19:53:04 | 显示全部楼层
没有干涉的,但要等到你的for循环执行完才会到while循环啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-5 20:47:50 | 显示全部楼层
flyleaf 发表于 2015-2-5 19:53
没有干涉的,但要等到你的for循环执行完才会到while循环啊

不是这个原因,之前在DMA的例子里面用DMA将数据传给串口的时候也是这样子写的,在while语句里面点灯,而且数据接收正常。
回复 支持 反对

使用道具 举报

发表于 2015-2-6 09:05:20 | 显示全部楼层
你的for 循环里有这么大的延时!
Delayms(62500);  
回复 支持 反对

使用道具 举报

发表于 2015-2-6 17:08:24 | 显示全部楼层
延时太长了
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-7-6 20:30 , Processed in 0.027460 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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