stm32DMA通道 ADC通道

发布者:心愿成真最新更新时间:2018-05-13 来源: eefocus关键字:stm32  DMA通道  ADC通道 手机看文章 扫描二维码
随时随地手机看文章

DMA:

1.使用DAC的时候,将转化后得到的模拟信号通过IO口输出的时候,为什么还将IO口配置能输入模式


PS:stm32手册上定义PA4和PA5分别和DAC1通道和DAC2通道相连  ;

DMA1和DMA2使用按个通道手册中也是有规定的:

波形数据从内存带DAC是怎么DMA是怎么传输的?:

/* 配置DMA2 */
DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;//外设数据地址
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&DualSine12bit ;//内存数据地址 DualSine12bit
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//数据传输方向内存至外设
DMA_InitStructure.DMA_BufferSize = 32;//缓存大小为32字节
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设数据地址固定
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存数据地址自增
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //外设数据以字为单位
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;//内存数据以字为单位
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//循环模式
DMA_InitStructure.DMA_Priority = DMA_Priority_High;//高DMA通道优先级
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//非内存至内存模式
DMA_Init(DMA2_Channel4, &DMA_InitStructure);

当传输的我们数据大小为32位 的时候,发送给DAC转化,


DMA通道选择:

外设请求使用DMA传输的时候,关于DMA通道的选择其stm32手册上都有规定的,需要我们对应手册去查询







ADC通道:

函数ADC_RegularChannelConfig( )。

假设我们使用了PC0

ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5)可

以配置通道的采样周期。该函数有4个参数,第一个参数指使用哪个ADC,我们选ADC1。第

二个参数,本次采样使用的通道,我们选择ADC_Channel_10。第三个参数,采样顺序。本

实验我们只有一个采样,直接给它赋值为:1.。第四个参数,配置采样周期。

这里PC0管脚是AD的ADC_Channel_10输入通道,这个通道并不是随意的选择的,在ST

提供的手册《【英文】STM32F107VC数据手册V6.pdf》中,有对应的说明:


译注:(具体见stm32手册)

表中的引脚名称标注中出现的ADC12_INx(x表示4~9或14~15之间的整数),表示这个引脚可以是

ADC1_INx或ADC2_INx。例如:ADC12_IN9表示这个引脚可以配置为ADC1_IN9,也可以配置为

ADC2_IN9。

同样,表中的引脚名称标注中出现的ADC123_INx(x表示0~3或10~13之间的整数),表示这个引脚可

以是ADC1_INx或ADC2_INx或ADC3_INx。


串口:

//P:串口接收从io口中传来的数据

 USART_InitStructure.USART_WordLength = USART_WordLength_8b;  //P:配置串口传输的字长,一个字符一个字符的接受

关键字:stm32  DMA通道  ADC通道 引用地址:stm32DMA通道 ADC通道

上一篇:stm32 adc计算
下一篇:关于Stm32定时器+ADC+DMA进行AD采样的实现

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

STM32驱动ST7920的12864液晶(串行方式)
/****************************************************************************************** * 文件名称 :12864.c * 版权 : * 模块名称 :st7920驱动的12864液晶的串行工作方式驱动程序 * cpu : stm32f103rct6 主频:72M * 作者 : * 创建日期 :2009-10-15 * 功能概要 : *----------------------------------------修改历史------------------------------------------
[单片机]
STM32的DS18B20的驱动移植
折腾了一晚上,才把DS18B20的驱动移植到STM32上来。以前在51上使用过单个和多个连接的DS18B20,有现成的程序了,以为很快就能弄好,结果还是被卡住了,下面说下几个关键点吧: 首先是延时的问题,STM32上若用软件延时的话不太好算时间,所以要么用定时器要么用SysTick这个定时器来完成延时的计算。相比之下用SysTick来的简单方便点。 接着是STM32 IO脚的配置问题,因为51是双向的IO,所以作为输入输出都比较方便。STM32的IO是准双向的IO,网上查了下资料,说将STM32的IO配置成开漏输出,然后外接上拉即可实现双向IO。于是我也按规定做了,但调了老半天都不成功,是因为DS18B20没有响应的信号。
[单片机]
STM32 f103 实现命令终端
文件说明 uart.c 实现输入反显及命令识别 cmd.c 实现命令函数及命令查找 main.c 进入shell模式 uart.c #include usart.h /**************************************************************************** * 名 称:void USART1_Configuration(void) * 功 能:配置USART1参数 * 入口参数: * 出口参数:无 * 说 明: * 调用方法:无 ************************************************
[单片机]
STM32——DMA
DMA 是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。 1、DMA工作分析 数据传输的过程中,不需要内核的全程参与,所以内核可以同时进行数据运算。DMA 方式是点到点的数据转移,而不使用 DMA 方式还要以内核来作为中转站,显然 DMA 传输方式的效率更高。 要使用 DMA,需要确定一系列的控制参数,如外设数据的地址、内存地址、传输方向等,在开启 DMA 传输前还要先发出 DMA 请求。 2、 初始化DMA typedef struct { uint32_t DMA_PeripheralBaseAdd
[单片机]
<font color='red'>STM32</font>——<font color='red'>DMA</font>
STM32工具安装和工程模板的建立
简介:在安装软件和新建工程这个过程中可能会出现各种问题,最好的办法就是百度,说实话,刚开始没有接触STM32,从软件下载到安装再到工程模板的建立我也弄了一天!要有耐心慢慢来!就会发现其实就那么回事! 一、工具安装 1.J-Link驱动的安装下载地址 2. KEIL MDK的安装这个版本更新很快,我用的是4.7版本的,现在5.0版本的都出来,所以可以自己百度去下载,很多地方都能下载到 3.成功安装好J-Link,同时插上J-link下载线后能在我的电脑设备管理器中看到J-Link Driver 4.由于安装大同小异,这里不再赘述。 二、工程模板的建立 准备工作 1.下载ST官方库,我这里是用的3.5版
[单片机]
<font color='red'>STM32</font>工具安装和工程模板的建立
STM32几种操作的寄存器版本和库函数版本对比
1、USART1接收完成标志检测 USART1- SR&0X40 == 0 USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET 2、USART1发送数据 USART1- DR = (u8) ch; USART_SendData(USART1,(u8)ch);
[单片机]
stm32 ds18b20 温度传感器
举例 void DS18B20_in() { GPIO_InitTypeDef gpio = { GPIO_Pin_11, GPIO_Speed_50MHz, GPIO_Mode_IPD }; GPIO_Init(GPIOG, &gpio); } void DS18B20_out() { GPIO_InitTypeDef gpio = { GPIO_Pin_11, GPIO_Speed_50MHz, GPIO_Mode_Out_PP }; GPIO_Init(GPIOG, &gpio); } u8 DS18B20_c
[单片机]
<font color='red'>stm32</font> ds18b20 温度传感器
基于VSCode搭建STM32开发环境
众所周知, Keil 是一款收费软件,虽然可以Po解使用,但很多 公司 还是有点害怕,想必有不少读者都收到过**函。 之前,开发 单片机 项目,可以说 Keil 是最佳选择之一,但VSCode横空问世之后,这种格局被打破。 因为 VSCode 免费且好用,可以安装各种插件,很多 工程师 逐渐从Keil 转向了 VSCode。而且,VSCode还能实现 Keil 不能实现的一些功能。 下面就给大家分享一下 VSCode 搭建 STM32 开发环境的一些常规且使用的功能。 一、需要的软件和工具 下载 最新版 VS Code: 安装好插件,具有良好的代码补全与调试功能。 下载 LLVM:用于代码补全,其实可以理解
[单片机]
基于VSCode搭建<font color='red'>STM32</font>开发环境
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
502 Bad Gateway

502 Bad Gateway


openresty
设计资源 培训 开发板 精华推荐

502 Bad Gateway

502 Bad Gateway


openresty
何立民专栏 单片机及嵌入式宝典

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

502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
502 Bad Gateway

502 Bad Gateway


openresty