STM8 ADC读取数据异常问题的解决

news/2024/12/29 20:28:51/

 

做了一个stm8的一个测量电压电流的项目,发现adc通道通过一个10k电阻连接VCC,的时候ADC数据出来都是只有200多,按理说,10位adc应该出来1000多才对,由于adc出来的数据是十六位的,怀疑是串口发送数据的时候数据位数不对。于是改为

uint16_t dat_tmp = 0;
// ADC_conf(4);
// dat_tmp =  ADC_GetConversionValue();// printf("\r\ndddddddddd\r\n");
//  delay(0xffff);
TIM1_SR1 &= ~(1 << 0); //清除中断标志
ms_count++;
if(ms_count > 1000) //1ms*1000=1s
{ms_count = 0;ADC_conf(2);dat_tmp =  ADC_GetConversionValue(2);printf("\r\n,ch2 = %hu", dat_tmp);ADC_conf(3);dat_tmp =  ADC_GetConversionValue(3);printf("ch3 = %hu", dat_tmp);ADC_conf(4);dat_tmp =  ADC_GetConversionValue(4);printf("ch4 = %hu", dat_tmp);if(SWITCH_ON){printf("switch on");}else{printf("switch off");}printf("\r\n");// PE_ODR ^= 1<<5;//LED灯1s翻转一次
}

出来还是只有200多,

,ch2 = 0ch3 = 2ch4 = 211switch on

,ch2 = 1ch3 = 3ch4 = 209switch on

,ch2 = 0ch3 = 2ch4 = 216switch on

,ch2 = 0ch3 = 2ch4 = 225switch on

,ch2 = 0ch3 = 1ch4 = 220switch on

,ch2 = 0ch3 = 1ch4 = 213switch on

,ch2 = 0ch3 = 1ch4 = 0switch on

多方查找,排除掉是芯片虚焊、芯片损坏之后,想到一个问题,就是我的ADC输入前面还有一个LM324的运放

会不会是运放影响了测试呢?于是果断将芯片拔掉,发现出来的数据正常了!

,ch2 = 0ch3 = 536ch4 = 833switch on,ch2 = 0ch3 = 546ch4 = 819switch on,ch2 = 0ch3 = 0ch4 = 265switch on,ch2 = 0ch3 = 0ch4 = 161switch on,ch2 = 0ch3 = 4ch4 = 162switch on,ch2 = 0ch3 = 0ch4 = 195switch on,ch2 = 0ch3 = 0ch4 = 183switch on,ch2 = 0ch3 = 0ch4 = 142switch on,ch2 = 0ch3 = 0ch4 = 946switch on,ch2 = 0ch3 = 0ch4 = 963switch on,ch2 = 0ch3 = 0ch4 = 874switch on,ch2 = 0ch3 = 0ch4 = 922switch on,ch2 = 0ch3 = 0ch4 = 959switch on,ch2 = 536ch3 = 0ch4 = 826switch on,ch2 = 540ch3 = 0ch4 = 851switch on,ch2 = 526ch3 = 0ch4 = 877switch on,ch2 = 0ch3 = 0ch4 = 172switch on,ch2 = 0ch3 = 0ch4 = 176switch on,ch2 = 0ch3 = 0ch4 = 194switch on,ch2 = 0ch3 = 0ch4 = 176switch on

 


http://www.ppmy.cn/news/481909.html

相关文章

CC2640R2F学习笔记(27)——ADC使用

一、简介 CC2640R2F 的 ADC 是几位的、几个通道的? 12 位模数转换器 (ADC)、200MSPS、8 通道模拟多路复用器。 使用的是什么参考源&#xff1f; 参考源有两种&#xff0c;一种是内部的固定 4.3V 参考源&#xff0c;一种是内部的电池电压。 本文采用的 4.3V 固定参考源&#x…

RFSoC应用笔记 - RF数据转换器 -06- RFSoC关键配置之RF-ADC内部解析(四)

前言 RFSoC中最重要的部分是射频直采ADC和DAC的配置&#xff0c;因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义。本文参考官方手册&#xff0c;主要对RFSoC ADC的可编程逻辑数据接口、多频带操作、以及奈奎斯特区的操作进行介绍。 文章目录 前言RF-ADC …

Stm32f103 ADC 学习笔记

原文地址为&#xff1a; Stm32f103 ADC 学习笔记 在做有AD模块项目的时候遇到几个问题&#xff1a; 1&#xff0c; ADC配合DMA采样规则是怎样的。 2&#xff0c; ADC在DMA采可否不连续采样&#xff0c;以提高有效采样使用率和降低功耗。 3&#xff0c; 如何提高有效利用…

Zynq Ultrascale+ RF Data Coverter IP配置 - ADC

Zynq Ultrascale RF Data Coverter IP配置中的有关概念-ADC ADC xczu28dr-ffvg1517-2共有8个ADC,分布在4个Tile上&#xff0c;图为tile225&#xff0c;另外三个tile为226、227、228 4个tile各自拥有一个独立的PLL。2个12bit/DAC,2个mixer&#xff0c;Tile中的mixer是用于I/Q混…

单片机ADC0808,DAC0832信号发生器

1. 设计内容和设计要求 1.1 设计内容 利用AT89C52单片机、DAC0832、ADC0808设计信号发生器&#xff0c;能够产生固定幅值的方波、锯齿波、三角波及正弦波。要求能够调节信号的幅度及频率&#xff0c;并在波形切换过程中&#xff0c;能够给予相应的指示。其中幅值采用DAC0832进行…

linux adc时钟设置,linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟

linux设备驱动归纳总结(十三)&#xff1a;1.触摸屏与ADC时钟 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 这节的内容说不上是驱动&#xff0c;只是写个代码让触摸屏能够工作&#xff0c;随便介绍一下时钟子系统(我不知道这样叫合…

10个ADC滤波算法

1、限幅滤波法&#xff08;又称程序判断滤波法&#xff09; A、方法&#xff1a; 根据经验判断,确定两次采样允许的最大偏差值&#xff08;设为A&#xff09;每次检测到新值时判断&#xff1a; 如果本次值与上次值之差<A,则本次值有效 如果本次值与上次值之差>A,则…

9、ADC

1、12位ADC是一种逐次逼近型模拟数字转换器。 它有多达18个通道&#xff0c;可测量16个外部和2个内部信号源。 各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入…