历史上的今天
今天是:2025年02月28日(星期五)
2020年02月28日 | STM8 ADC读取数据异常问题的解决
2020-02-28 来源:eefocus
做了一个stm8的一个测量电压电流的项目,发现adc通道通过一个10k电阻连接VCC,的时候ADC数据出来都是只有200多,按理说,10位adc应该出来1000多才对,由于adc出来的数据是十六位的,怀疑是串口发送数据的时候数据位数不对。于是改为
uint16_t dat_tmp = 0;
// ADC_conf(4);
// dat_tmp = ADC_GetConversionValue();
// printf("rnddddddddddrn");
// 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("rn,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("rn");
// 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
史海拾趣
|
wince 5.0 WinCEPB50-091231-Product-Update-Rollup-Armv4I.msi wince 的rollup 2009 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5ae5ff14-4d40-4e39-a245-0e94b9debcb7… 查看全部问答> |
|
我用proteus把原理图画好后,在芯片AT89C52上加入.hex文件,然后开始仿真。之后就是出现以下两个问题: 1 Node VCC not found whilst binding pin V+ of U3-ADC#0028! 2 Simulation FAILED due fatal simulator errors. 我的汇编程序是在KEIL ...… 查看全部问答> |
|
Hi 请问哪位知道在windows系统里面,如果一个移动硬盘插到USB口上,用VC编程如何得到该移动硬盘的大小,已用空间和可用空间. 急问, 谢谢. 我是要在用户层,用应用程序实现. 谢谢啦.不胜感激.… 查看全部问答> |
|
我用VS2005 C#开发PDA程序,现在需要当点击某个按钮的时候发出哔的声音,我准备好了wav文件,可是不会编写播音代码,好像用playsound不行,因为那是windows平台下的api. pda的操作系统是windowsmobile5… 查看全部问答> |
|
我先安装PB,然后开始安装EVC4.0 + SP4。 安装中注册时不能继续。就是进度条停在某一位置不动了。是什么原因呢? 详细: status: registering the platform builder components 进度条不动。安装程序也没有死掉。 我的系统是 : ...… 查看全部问答> |
|
冬眠模块RTC在处部电源切断,只有电池供电时不跑了, 关于冬眠模块我的出始化是这样的: SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE); &nbs ...… 查看全部问答> |
|
现在我会PS/2键盘给单片机发送数据了。但是我想知道的是键盘上的那些指示灯是怎么亮的。是单片机给键盘发数据使它亮的吗?如果是,是发送什么数据啊。在网上找到的都是关于PS/2键盘向单片机发送数据的例子,这方面的似乎没有。有木有研究过这种问题 ...… 查看全部问答> |
|
一下内容是根据【C2000 LaunchPad】的基础上加的,希望不要怪罪!只是在网上没有找到28027接收部分的内容,所以贴出来供大家参考使用! /*使用FIFO,并转换数据类型为字符串,我是通过蓝牙发送给串口调试助手的*/ #include \"DSP28x_Project.h\" ...… 查看全部问答> |
|
这里我谈谈我的一些经验和大家分享,希望能对IC设计的新手有一定的帮助,能使得他们能少走一些弯路! 在IC工业中有许多不同的领域,IC设计者的特征也会有些不同。在A领域的一个好的IC设计者也许会花很长时间去熟悉B领域的知识。在我们职业生 ...… 查看全部问答> |
|
刚刚学avr,按照教程设置串口波特率为9600,但是用串口调试时波特率选600才能正常输出,怎么不是9600呢?代码如下: #include #include #include #define F_CPU 16000000 #define BAUD 9600 int main(void) { &nbs ...… 查看全部问答> |




