STM32F10x ADC3 DMA2CH5 初始化(寄存器版)

//***************************************************************************** // 文件名: ADC
// 功  能:
// 说  明:
// 日  期:
// 版本号:
// 改  进:
//***************************************************************************** #include "ADC.h"
vu16 AD3_Value[ADC3_N][ADC3_M];  // 用来存放ADC3转换结果,也是DMA的目的地址
//***************************************************************************** //函数名:void InitDMA(void)
//作  用:DMA初始化
//说  明:
/
/***************************************************************************** void InitDMA2ADC3(void)
{
RCC‐>AHBENR |= 1 << 1;    //开启DMA2时钟
__nop();
DMA2_CH5‐>CCR  = 0;    // 复位
DMA2_CH5‐>CCR |= 0 << 14;    // 非存储器到存储器模式
DMA2_CH5‐>CCR |= 1 << 12;    // 中等优先级
DMA2_CH5‐>CCR |= 1 << 10;    // 存储器数据宽度16位
国家基础教育资源网DMA2_CH5‐>CCR |= 1 << 8;    // 外设数据宽度为16位
DMA2_CH5‐>CCR |= 1 << 7;    // 存储器增量模式
DMA2_CH5‐>CCR |= 0 << 6;    // 外设地址非增量模式
DMA2_CH5‐>CCR |= 1 << 5;    // 循环管模式
DMA2_CH5‐>CCR |= 0 << 4;    // 从外设读
DMA2_CH5‐>CCR |= 0 << 3;    // 禁止TE中断
DMA2_CH5‐>CCR |= 0 << 2;    // 禁止HT中断
DMA2_CH5‐>CCR |= 0 << 1;    // 禁止TC中断
美政府关门危机
DMA2_CH5‐>CNDTR = ADC3_M * ADC3_N; // 传输数量
厦门市民健康信息系统
DMA2_CH5‐>CPAR = (u32)(&ADC3‐>DR); // 外设地址
DMA2_CH5‐>CMAR = (u32)(&AD3_Value); // 内存地址
DMA2‐>IFCR |= 1 << 1;      // 清零通道完成中断标志位
DMA2_CH5‐>CCR |= 1 << 0;    // 开启通道
}
/
/***************************************************************************** //函数名:void InitADC3(void)
//作  用:ADC初始化
荷花淀教学反思//说  明:1.提高采样时间可以提高精确度
//***************************************************************************** void InitADC3(void)
{
呈味核苷酸RCC‐>APB2ENR |=  1 << 15;  // ADC时钟开启
ADC3‐>CR1  = 0;    // ADC控制寄存器1
ADC3‐>CR1 |= 1 << 8;    // 使用扫描模式
ADC3‐>CR2  = 0;    // ADC控制寄存器 2
ADC3‐>CR2 |= 0 << 11;    // 数据右对齐
ADC3‐>CR2 |= 1 << 1;    // 连续转换模式
ADC3‐>CR2 |= 7 << 17;    // SWSTART启动规则通道组转换
ADC3‐>SMPR1 = 0x00FFFFFF;  // 所有通道采样时间239.5周期,通道10‐17
ADC3‐>SMPR2 = 0x3FFFFFFF;  // 所有通道采样时间239.5周期,通道0‐9
ADC3‐>SQR1  = 0;    // ADC规则序列寄存器1
ADC3‐>SQR1 |= (ADC3_M ‐ 1) << 20; // 规则通道序列长度
ADC3‐>SQR2  = 0;    // ADC规则序列寄存器2
ADC3‐>SQR2 |= ADC3_CH_A << 15; // 规则序列中第10个转换的通道编号
ADC3‐>SQR2 |= ADC3_CH_9 << 10; // 规则序列中第9个转换的通道编号
ADC3‐>SQR2 |= ADC3_CH_8 << 5;  // 规则序列中第8个转换的通道编号
ADC3‐>SQR2 |= ADC3_CH_7 << 0;  // 规则序列中第7个转换的通道编号
ADC3‐>SQR3  = 0;    // ADC规则序列寄存器3
ADC3‐>SQR3 |= ADC3_CH_6  << 25; // 规则序列中第6个转换的通道编号
ADC3‐>SQR3 |= ADC3_CH_5  << 20; // 规则序列中第5个转换的通道编号
ADC3‐>SQR3 |= ADC3_CH_4  << 15; // 规则序列中第4个转换的通道编号
ADC3‐>SQR3 |= ADC3_CH_3  << 10; // 规则序列中第3个转换的通道编号
ADC3‐>SQR3 |= ADC3_CH_2  << 5; // 规则序列中第2个转换的通道编号
ADC3‐>SQR3 |= ADC3_CH_1  << 0; // 规则序列中第1个转换的通道编号
十七届中央候补委员名单ADC3‐>CR2 |= 1 << 8;    // 使用DMA模式
ADC3‐>CR2 |= 1 << 0;    // 开启ADC转换
ADC3‐>CR2 |= 1 << 3;    // 初始化校准寄存器
while((ADC3‐>CR2 & (u32)0x08) == 1); // 等待初始化校准寄存器完成
ADC3‐>CR2 |= 1 << 2;    // 开始校准
while((ADC3‐>CR2 & (u32)0x04) == 1);  // 等待准寄存器完成
ADC3‐>CR2 |= 1 << 20;    // 使用外部触发信号启动转换  ADC3‐>CR2 |= 1 << 22;    // 开始转换规则通道
}

本文发布于:2024-09-22 23:36:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/190822.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:oz890
标签:通道   转换   规则   编号   模式   序列   寄存器   存储器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议