STM32F407 单通道ADC采样,DMA传输

发布者:火箭飞人最新更新时间:2017-10-30 来源: eefocus关键字:STM32F407  单通道  ADC采样  DMA传输 手机看文章 扫描二维码
随时随地手机看文章

最近在研究STM32F4的ADC采样功能,中间遇到了一些问题,写下来以备后用。
F4和F1有很多库函数是不一样的,在参照F1的教程的时候,不能直接抄他的实验代码,否则会出错。
因为要用DMA将ADC转换得到的值快速传递到SRAM中,所以就需要对ADC相关的DMA进行设置,这一步很重要。在写ADC1的DMA初始化函数前,一定要查Reference Manual的DMA request mapping,搞清楚是某一个具体的peripheral对应的是DMA1还是DMA2,用到的是哪一个stream和channel。例如这次实验要用到的外设ADC1,可以查到,ADC1归DMA2 Stream0或者Stream4的Channel0管理,不能用其他的。
相关程序就是设置ADC相关的GPIO口,这里提一下,F4里面设置GPIO为模拟输入,用到的库函数是GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN这与F1是不一样的。
注意这一条语句


  1. DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) (&ADC1->DR);  //ADC地址  

在教程中是这样写的


  1. #define ADC1_DR_Address ((uint32_t)0x4001204C)  

  2. DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address ;  //ADC地址  

这个 ADC1_DR_Address是宏定义的,其数值(基地址)是差参考手册的memory map的register boundary addresses得到的(如下图所示)


STM32F407 单通道ADC采样,DMA传输 基地址+ADC_DR的偏置地址,直接用(uint32_t)(&ADC1->DR)这样很简洁,也不用去查手册了,我觉得这样比较好用


关键字:STM32F407  单通道  ADC采样  DMA传输 引用地址:STM32F407 单通道ADC采样,DMA传输

上一篇:STM32 CAN应用-过滤器设置
下一篇:STM32外设寄存器地址定义

推荐阅读最新更新时间:2024-03-16 15:42

基于STM32L151//STM32F407的矩阵键盘程序(不规则接口)
最近在做一个有关按键的项目,需要用到矩阵键盘,上网找了很多都是基于一些规则接口的程序,感觉无语,因为画PCB由于布线原因 不太可能矩阵键盘的几条线是连接连续的GPIO口,所以经过我自己思考,做出了自己基于STM32的不规则程序, 由于每种矩阵键盘的连接原理有时是不同,所以首先先讲明我的矩阵键盘的连接原理 4条行线初始化时全为1,列线全为0,由于我的列先有接10K的电阻,有按键按下时,被按下的列线为1, 行线一次置为1、0、0、0,1,0,0�,0,1,0�,0,0,1 基于STM32L151//STM32F407的矩阵键盘程序(不规则接口): 行接口:PA8,PA12,PB3,PB4 列接口:PA11,P
[单片机]
基于STM32L151//<font color='red'>STM32F407</font>的矩阵键盘程序(不规则接口)
Stm32f407DISCOVEY学习uart串口波特率乱总结
这几天调试Stm32f407DISCOVEY。由于没有串口现成的库函数例程,就用的神州王开发板上的例程直接调,结果串口输出老是乱,115200波特率;;试着把它换到 38400居然可以打印,相差3倍多;真相只有一个,进过调试摸索百度,终于找到原因; .时钟频率不对 由于时钟频率是在库文件里自动定义好的,一开始没有发现,但是波特率一直不对,后来发现问题在库文件里定义的外部晶振是25M,而DISCOVERY的板子上用的是8M的晶振,故产生的主频不对,需要改两个地方,①所以在 stm32f4xx.h中改 #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)8000000) /*!
[单片机]
stm32f407】DAC实验
描述 STM32F4的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压Vref+(通ADC共用)以获得更精确的转换结果。 STM32F4的DAC模块主要特点有: ① 2个DAC转换器:每个转换器对应1个输出通道 ② 8位或者12位单调输出 ③ 12位模式下数据左对齐或者右对齐 ④ 同步更新功能
[单片机]
【<font color='red'>stm32f407</font>】DAC实验
运算放大器--单通道、双通道、四通道优缺点及结构
Bob Widlar曾提出一个重要观点,即集成电路(IC)的设计依据应该是比例和匹配,而不是电阻和晶体管的绝对值。这个原理同样适用于需要多个运算放大器的PCB(印制电路板)设计。   双通道运放真的是两运放,还是一硅片具备两功能?   人们常常认为双通道运放等同于两个单通道运放,但在电路板上,单片双通道IC与两个单通道IC之间还是存在一些细微差别,这些差别可能会给新的设计带来问题。由于两个运放在相同的单个硅片上并排放置,因此在使用双通道放大器时需要考虑电气和散热因素。   业界研究热效应已经有30多年的历史了,并且在Solomon引用的一篇前50强IEEE论文有详细的论述 。随着运放输出电压的改变,散热量也随之改变,会有一个
[模拟电子]
运算放大器--<font color='red'>单通道</font>、双通道、四通道优缺点及结构
STM32F407时钟设置
这里我们写一个RCC配置函数来说明各函数的用途,其中HSE = 8MHz。 /** * @说明 配置STM32F407的时钟系统 * @参数 无 * @返回 无 * @说明 void Clock_Config(void) 按如下表格配置时钟 * *================================================================== * Supported STM32F4xx device revision | Rev A *------------------------------------------------------------------
[单片机]
STM32F407 TIM1的PWM输出
//TIM1 PWM部分初始化 //PWM输出初始化 //arr:自动重装值 //psc:时钟预分频数 void TIM1_PWM_Init(u32 arr,u32 psc) { //此部分需手动修改IO口设置 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); //TIM1时钟使能 RCC_AHB1P
[单片机]
STM32学习笔记一一DMA传输
1.简介 DMA:全称为: Direct Memory Access,即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。 STM32 最多有 2 个 DMA 控制器(DMA2 仅存在大容量产品中), DMA1 有 7 个通道。 DMA2 有 5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起来协调各个 DMA 请求的优先权。 2.STM32 DMA特性 ●每个通道都直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发。这些功能
[单片机]
STM32学习笔记一一<font color='red'>DMA</font><font color='red'>传输</font>
STM32F405与STM32F407CAN配置
STM32F405与STM32F407CAN配置略有不同,不同之处在于407多了一个电平拉高拉低模式,配置时一定要注意。 其次,要开CAN2,必须开CAN1,因为CAN1是主,CAN2是从;开了CAN中断,一定要写中断处理函数并及时清除中断标志位,否则程序会卡死。 405的配置: GPIO_InitTypeDef GPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_A
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved