你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 5006|回复: 5

STM8L151 0输入时,AD转换值很大

[复制链接]

2

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-4-15 12:54:03 | 显示全部楼层 |阅读模式
 先用到STM8L151芯片 ,有21路AD转换,在0V输入时,每路的AD转换值也有1540,Vref+链接的是VCC电源端,找了好久不知道什么原因,请高手支招。谢谢!下面是代码:
void ADCinit(void)
{
       ADC1_CR1 = 0x00;
        ADC1_CR2 = 0x02;//0x02  0~23通道AD16分频寄存器
        ADC1_SR = 0x00;
                  ADC1_TRIGR1 = 0x00;

                 ADC1_TRIGR2 = 0xff;//禁止AIN16~AIN23施密特触发                ADC1_TRIGR3 = 0xff;//禁止AIN8~AIN15施密特触发
                 ADC1_TRIGR4 = 0xf8;//禁止AIN3~AIN7施密特触发
        ADC1_SQR1 = 0x80;//禁用DMA模块
        ADC1_SQR2 = 0x00;
        ADC1_SQR3 = 0x00;
        ADC1_SQR4 = 0x08;//
        ADC1_CR1 |= 0x01;//使能ADC
        Delay_us(20);
        ADC1_CR1 |= 0x02;//启动ADC
}
void ADConvert(void)
{
        unsigned int ADCValue=0;
        
        if(!(ADC1_SR&0x01))return;
        ADC1_SR &= 0xfe;//清除转换标志
        //ADCValue = ADC1_DRL;
<span style="color: rgb(34, 34, 34); font-family: sans-serif; font-size: 14px; line-height: 21px; background-color: rgb(238, 238, 238); ">        //ADCValue |= ADC1_DRH
回复

使用道具 举报

8

主题

31

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-4-15 16:51:37 | 显示全部楼层

回复:STM8L151 0输入时,AD转换值很大

看得很蛋疼,……建议学习使用库函数
你的采集数据是左对齐还是右对齐的? 数据是采集了15次求平均值吗?代码不完整……
回复 支持 反对

使用道具 举报

2

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-4-15 17:45:14 | 显示全部楼层

回复:STM8L151 0输入时,AD转换值很大

回复第 2 楼 于2014-04-15 16:51:37发表:
看得很蛋疼,……建议学习使用库函数
你的采集数据是左对齐还是右对齐的? 数据是采集了15次求平均值吗?代码不完整…… 
 
谢谢回复,代码是完整的,数据是采集16次求平均值?STM8L好像没有采集数据左对齐或右对齐的寄存器设置吧?
 
回复 支持 反对

使用道具 举报

8

主题

31

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-4-15 18:28:44 | 显示全部楼层

回复:STM8L151 0输入时,AD转换值很大

回复第 3 楼 于2014-04-15 17:45:14发表:
回复第 2 楼 于2014-04-15 16:51:37发表:
看得很蛋疼,……建议学习使用库函数
你的采集数据是左对齐还是右对齐的? 数据是采集了15次求平均值吗?代码不完整…… 
 
谢谢回复,代码是完整的,数据是采集16次求平均值?STM8L好像没有采集数据左对齐或右对齐的寄存器设置吧?
 

 

以为是stm8s。对于stm8l不熟悉,看看芯片手册数据对齐方式,代码完整不完整,我看不到main函数。等高手来帮忙把
回复 支持 反对

使用道具 举报

2

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-4-15 21:59:53 | 显示全部楼层

回复:STM8L151 0输入时,AD转换值很大

回复第 4 楼 于2014-04-15 18:28:44发表:
回复第 3 楼 于2014-04-15 17:45:14发表:
回复第 2 楼 于2014-04-15 16:51:37发表:
看得很蛋疼,……建议学习使用库函数
你的采集数据是左对齐还是右对齐的? 数据是采集了15次求平均值吗?代码不完整…… 
 
谢谢回复,代码是完整的,数据是采集16次求平均值?STM8L好像没有采集数据左对齐或右对齐的寄存器设置吧?
 

 

以为是stm8s。对于stm8l不熟悉,看看芯片手册数据对齐方式,代码完整不完整,我看不到main函数。等高手来帮忙把
 
谢谢你的关注。
 
回复 支持 反对

使用道具 举报

4

主题

224

回帖

0

蝴蝶豆

初级会员

最后登录
2020-7-4
发表于 2014-4-22 23:27:09 | 显示全部楼层

RE:STM8L151 0输入时,AD转换值很大

1、看下你的参考电压,看起来是参考电压不对。
2、调整输入,看ad值是否变化,从而确定你的软件有没有问题。
如果输入变化,ad成比例变化,肯定是参考电压设置有问题
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版