STM8L探索套件学习笔记-ADC_DMA(十五)

发布者:敬亭山人最新更新时间:2015-12-21 来源: eefocus关键字:STM8L  学习笔记  ADC  DMA 手机看文章 扫描二维码
随时随地手机看文章
使用ADC的DMA功能,每次连续转换8个数据,然后平均显示到LCD上。
主要代码如下:
void main(void)
{
   /* Enable ADC1 clock */
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
 
  /* Enable DMA1 clock */
  CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, ENABLE);
  LCD_GLASS_Init();
  /* Initialize and configure ADC1 */
  ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2);
  ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
    /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
 
  /* Enable ADC1 Channels 24 */
  ADC_ChannelCmd(ADC1, ADC_Channel_24, ENABLE);
   /* Connect ADC to DMA channel 0 */
  SYSCFG_REMAPDMAChannelConfig(REMAP_DMA1Channel_ADC1ToChannel0);
 
  DMA_Init(DMA1_Channel0, BUFFER_ADDRESS,
           ADC1_DR_ADDRESS,
           BUFFER_SIZE,
           DMA_DIR_PeripheralToMemory,
           DMA_Mode_Circular,
           DMA_MemoryIncMode_Inc,
           DMA_Priority_High,
           DMA_MemoryDataSize_HalfWord);
 
  /* DMA Channel0 enable */
  DMA_Cmd(DMA1_Channel0, ENABLE);
 
  /* Enable DMA1 channel0 Transfer complete interrupt */
  DMA_ITConfig(DMA1_Channel0, DMA_ITx_TC, ENABLE);
 
  /* DMA enable */
  DMA_GlobalCmd(ENABLE);
 
  /* Enable ADC1 DMA requests*/
  ADC_DMACmd(ADC1, ENABLE);
 
  /* Start ADC1 Conversion*/
  ADC_SoftwareStartConv(ADC1);
  enableInterrupts();
  /* Infinite loop */
  while (1)
  {  
  }
}
关键字:STM8L  学习笔记  ADC  DMA 引用地址:STM8L探索套件学习笔记-ADC_DMA(十五)

上一篇:STM8L探索套件学习笔记-独立看门狗IWDG(十六)
下一篇:STM8L探索套件学习笔记-信号发生器(十四)

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

STM8SF103单片机的ADC采样电压设计
硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文。 手册上对STM8S ADC的管脚描述如下: STM8SF103这款芯片是TSSOP 20管脚封装,如下: STM8SF103这款芯片能用的是5个AD采样通道,分别是 AI N2~AIN6。其实是还有一个通道AIN7,但手册并没有对其描述。 这里还有一个很奇怪的地方,从ST资料中找到一个与上面的表数据不同的地方,如: 很明显的说STM8S103是存在这个AIN7通道的,再加上另外5个通道,应该是6个通道才对。 要做AD采样,首先要解决的就是AD的参考电压
[单片机]
STM8SF103单片机的<font color='red'>ADC</font>采样电压设计
ADSP-21535 Blackfin的Mem DMA高速通信
  Blackfin 是美国AD公司和Intel 公司于2001年底联合推出的一款定点DSP, RISC指令结构,运作高效,具有十分优异的性能。该DSP具有300MHz的主频,2个40bit的MAC(乘加器)和2个32bit的ALU(算术逻辑单元),4个8bit的视频处理单元,16个地址寻址单元。该DSP内部集成了308KB的RAM,并具有丰富的外部接口,如PCI、USB、SPI、同步和异步串口等。同时,芯片内部设计了看门狗和多种定时器,充分满足软件工程稳定性的设计要求。值得一提的是,21535可以动态地控制电压输入,调整运行频率,减少芯片功耗,十分适用于移动产品的设计。   2002年底,AD公司在中国开始大规模推广Blac
[嵌入式]
STM32 ADC电压值的计算
在使用STM32的ADC进行检测电压时必须回涉及到电压值的计算,为了更高效率的获取电压,现在有以下三种方法: 你得到的结果是你当前AD引脚上的电压值相对于3.3V和4096转换成的数字. 假如你得到的AD结果是ADC_DR这个变量,他们存在以下关系: ADC_DR/当前电压值 = 4096/3300毫伏如果你反过程想得到当前电压值,可以如下计算: unsigned long Voltage; Voltage = ADC_DR; //---假设你得到的AD结果存放到ADC_DR这个变量中; Voltage = (Voltage * 3300)/4096; //----你就得到了正确的电压结果,单位是mV 一般出于效率
[单片机]
STM32 SPI+DMA (HAL库)使用方法
/* * SPI硬件初始化,内存地址初始化 */ static void Init(void) { uint8_t i; /*失能SPI1*/ HAL_SPI_DeInit(&hspi1); /*清空FpgaRevData内存*/ for(i=0;i REV_MAX_NUM;i++) { memset(FpgaRevData ,0,FPGA_DATA_PAKET_LENGTH); } /*初始化内存指针*/ gWritePtr=0; gReadPtr=0; /*使能SPI1*/ HAL_SPI_Init(&hspi1); /*SPI DMA初始化,并开启一次数据接收*
[单片机]
STM32 USB CAN 学习笔记 - 共享RAM的用法
USB 时钟可以一直使能。 如果CAN时钟没有使能,RAM 能被软件读写。(CANBus 不能发送和接受Message) 如果CAN时钟使能,RAM不能软件被写。 CANBus Core 控制此RAM区域。(CANBus 可以发送和接受Message) CANBus 占用了 256 字节(地址范围 512 字节)。 开始区域是Filters = (F0R0、F0R1), (F1R0、F1R1), ... (F13R0、F13R1). 紧接着是 Rx0 FiFo , Tx0, Tx1, Tx2, Rx0 FiFo , Rx0 FiFo , Rx1 FiFo , Rx1 FiFo , Rx1 FiFo 。 USB 可以使用
[单片机]
STM32多通道ADC规则转换实现了
vu16 ADC_RCVTab ; //自己添加 /******************************************************************************* * Function Name : main * Description : Main program * Input : None * Output : None * Return : None *******************************************************************************/ int main(void) { #
[单片机]
STM8S003xx学习笔记(2):16位高级控制定时器(TIM1)
在单片机中定时器是一个非常重要的概念,这篇文章主要是对定时器TIM1做一个学习笔记。 1 综述 STM8S003xx只含有TIM1、TIM2、TIM4,其中TIM1是高级控制寄存器,TIM2和TIM4是通用定时器,这篇文章介绍的是TIM1。 在《数据手册》中我们可以知道,TIM1是一个应用广泛的高级定时器,由其互补输出,死区时间控制和居中对齐PWM功能。其应用领域扩展到电机控制、灯和半桥驱动。 ● 16位向上、向下、向上/向下自动重装载计数器,并有一个16位预分频器。 ● 四个独立的捕捉/比较通道(CAPCOM)配置为输入捕获、输出比较、PWM生成(边缘和居中对齐模式)和单脉冲输出模式 ● 同步模块的控制外部信号的计时
[单片机]
STM8S003xx<font color='red'>学习</font><font color='red'>笔记</font>(2):16位高级控制定时器(TIM1)
可满足高性能数字接收机动态性能要求的ADC和射频器件
摘要:针对数字式接收机对其所采用器件的动态性能要求,给出了一个欠采样接收机的结构图。同时给出了满足该高性能数字接收机动态性能要求的新型器件及主要性能参数。 关键词:数字接收机;动态性能;射频器件;ADC;MAXIM 许多数字接收机都对其选用的高性能ADC及模拟器件的动态性能具有较高要求。如蜂窝基站数字接收机就要求有足够的动态范围,以便处理较大的干扰信号,从而把电平较低的有用信号解调出来。通过Maxim公司的15位65Msps模数转换器MAX1418或12位65Msps模数转换器 MAX1211配以2GHz 的MAX9993或900MHz的MAX9982集成混频器,即可为接收机的两级关键电路提供出色的动态特性,此外,Maxim公
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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