程序中使用ADC1采样一个外部输入,一个内部参考电压的电压,其中出现了两通道的数据错位问题,即有时数组第一个数与该数组第二个数据交换了,在网上找了很久都没神马结果,最后只能将ADC的连续转换模式设置成单次转换
即ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_1);改成
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit, ADC_Prescaler_1);
在每次一组数据传 输完成产生一次DMA中断的时候再启动下一次adc转换。这样数据才不至于错位。
***最后,如果读者有一些在adc连续转换模式解决数据错位的办法,请指教***
关键字:STM8L051 ADC DMA 两通道 数据采样 错位问题
引用地址:
STM8L051之ADC+DMA两通道数据采样错位问题
推荐阅读最新更新时间:2024-11-05 13:45
ADC输入噪声利弊分析(一)
多数情况下, 输入噪声 越低越好,但在某些情况下,输入噪声实际上有助于实现更高的分辨率。这似乎毫无道理,不过继续阅读本指南,就会明白为什么有些噪声是好的噪声。 折合到输入端噪声(代码跃迁噪声) 实际的ADC在许多方面与理想的ADC有偏差。折合到输入端的噪声肯定不是理想情况下会出现的,它对ADC整体传递函数的影响如图1所示。随着模拟输入电压提高,"理想"ADC(如图1A所示)保持恒定的输出代码,直至达到跃迁区,此时输出代码即刻跳变为下一个值,并且保持该值,直至达到下一个跃迁区。理论上,理想ADC的"代码跃迁"噪声为0,跃迁区宽度也等于0.实际的ADC具有一定量的代码跃迁噪声,因此跃迁区宽度取决于折合到输入端噪声的量(如图1B
[模拟电子]
STM8L051 调试体会
芯片很小,坑不少 芯片烧写次数,051系列是100次!!!不适合用来做开发板,可以做产品,但是目前烧写了有几百次了还没出问题。151系列可以到10k I2C 引脚是真开漏,需要外部上拉电阻。 使用LSE时候,在线调试会断开 ADC 多通道采集发现数据错位,我也发现了,但是最后发现主要是在线调试的原因,正常运行没有问题。 RTC AWU 唤醒HALT,这个地方要注意一定要仔细看手册,设置计数器的时候先要去写保护,然后清除WUTE,再查询WUTWF位,直到WUTWF=1时,写寄存器,库函数的操作没有等待查询WUTWF位的操作,说问题吧也不是很大,现象就是在线调试的时候发现即使用库函数改了计数器数值,但是没有修改成功
[单片机]
STM32直接存储器访问DMA
第一次接触DMA是在学校学习ARM9裸板程序的时候,想起来都时隔快2年了。现在来看看STM32平台的DMA,一样,在标准外设库的支持下,STM32的DMA编程十分简单,但是既是学习,那还是花点时间看看DMA的相关概念及原理的了解下。 1. DMA简介 DMA是Direct Memory Access的简称,是直接存储器访问的意思。DMA是STM32单片机的外设之一,主要功能是用来搬移数据的。通过DMA搬移数据不需要CPU直接参与控制,也不需要中断处理方式那样保留现场和恢复现场。在传输数据的时候,CPU可以干其他事情。 无使用DMA的数据传输: 使用DMA后的数据传输: DMA数据传输支持从外设到存储器、存储器到外设
[单片机]
STM32系统学习——DMA(直接储存器访问)
DMA主要功能是传输数据,但是不需要占用CPU,即在传输数据时,CPU可以做别的事,像多线程。数据传输从外设到存储器或者从存储器到存储器。DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可以理解为传输数据的一种管道。要注意的是,DMA2只存在于大容量单片机中。 一、DMA框图解析 DMA控制器独立于内核,属于一个单独外设,结构结合下图来看 1.DMA请求 如果外设想通过DMA传输数据,必须先向DMA控制器发送DMA请求,DMA收到请求信号后,控制器会给外设一个应答信号,当外设应答且DMA控制器收到应答信号后,就会启动DMA传输,直到传输完毕。 DMA有DMA1和DM
[单片机]
STM32通过ADC1读取光敏电阻的值转换光照强度
【1】光敏电阻的原理 光敏电阻是一种半导体元件,它的电阻值会随着照射在其表面的光线强度的变化而发生改变。当光线越强,光敏电阻的电阻值就越小;当光线较弱或没有光照射时,电阻值就会增大。 光敏电阻广泛应用于光电控制、光度计、自动调节亮度灯等领域。 常见的光敏电阻有硫化镉(CdS)光敏电阻和硒化铟(InSb)光敏电阻等。 与其他传感器相比,光敏电阻具有以下优点: 灵敏度高:对光线强度的变化非常敏感。 响应速度快:一般情况下响应时间只需几毫秒。 易于集成:小巧轻便,易于安装和集成到各种设备中。 价格低廉:相对于其他光电传感器,光敏电阻的价格较为低廉。 但是,光敏电阻也有其缺点。由于光敏电阻本身的特性,其输出不太稳定,精度
[单片机]
如何实现大信号输出的硅应变计与模数转换器的接口
电桥是精密测量电阻或其他模拟量的一种有效的方法。本文介绍了如何实现具有较大信号输出的硅应变计与模数转换器(ADC)的接口,特别是Σ-Δ ADC,当使用硅应变计时,它是一种实现压力变送器的低成本方案
硅应变计
硅应变计的优点在于高灵敏度,它通过感应由应力引发的硅材料体电阻变化来检测压力。相比于金属箔或粘贴丝式应变计,其输出通常要大一个数量级。这种 硅应变计的输出信号较大,可以与较廉价的电子器件配套使用。但是,这些小而脆器件的安装和连线非常困难,因而增加了成本,限制了它们在粘贴式应变计应用中 的使用。
不过,用MEMS工艺制作的硅压力传感器却克服了这些弊病。这种MEMS压力传感器采用了标准的半导体工艺
[嵌入式]
STM32的ADC和串口
如果简单的使用USART的话配置相当简单,只要配置一下波特率,数据长度,停止位长度,校验位。然后再设置一下串口的引脚,输入为上后输入,输出为利用推挽输出。这样一来串口就配置好了,如果使用库则一目了然,如果使用寄存器操作会繁琐一点找各个寄存器,因为设置波特率和设置数据长度等这些并不在一个寄存器中设置完成,还有可能忘记个别设置而无法找其原因。但寄存器操作的效率会很高。如下配置: void USART_Initial(uint32_t Baud) { USART_InitTypeDef USART_InitStruct; USART_GPIO(); //配置串口引脚 USART_InitStruct.USART_BaudRate=Bau
[单片机]
德州仪器推出两款多通道16位模数转换器
2008 年 5 月 30日,德州仪器 (TI) 宣布推出 ADS1174(四通道)与 ADS1178(八通道)两款多通道16位 ∆∑ 型模数转换器 (ADC)。这两款新产品完美集成了出色的 DC 精度、卓越的 AC 性能以及低成本集成等优异特性,为电源测量、除颤器、ECG 监视器以及压力传感器、科里奥列流量计以及震荡/模式分析等要求严格的信号采集应用提供了同时采样测量系统ADS1174 与ADS1178 模数转换器不仅具有 25kHz 的带宽、2uV/C 的失调电压漂移、高达 97dB 的信噪比 (SNR),而且还支持两种操作模式,从而可实现速度优化(52kSPS) 或功耗优化。 过去,可提供出色漂移性能的工业
[新品]