OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7659|回复: 12

stm8ladc采样问题

[复制链接]

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
发表于 2016-2-29 16:35:07 | 显示全部楼层 |阅读模式
5金钱
这两天一直做adc采样,12-bit分辨率,采样得到的数据存放在adc1的DR寄存器中,请问怎样转换得到电压值,是乘以3.3再除以4096吗?stm8l的量化电平是多少?最大是否只能测到3.3v?

最佳答案

查看完整内容[请看2#楼]

ref一般取3.3V,采样IO最大能取到3.3V,一般采用分压电路,12bit分辨率,电压值是采样值乘以3.3除以4096
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3338
金钱
3338
注册时间
2013-7-30
在线时间
707 小时
发表于 2016-2-29 16:35:08 | 显示全部楼层
ref一般取3.3V,采样IO最大能取到3.3V,一般采用分压电路,12bit分辨率,电压值是采样值乘以3.3除以4096
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
 楼主| 发表于 2016-2-29 18:35:15 | 显示全部楼层
那我用一个不知道多少电压的电池给stm8l供电,怎样测得这个电池的电压?只读adc1的DR寄存器,它的值接近于4096,那这个电池电压就是3.3v?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2016-3-3 00:05:04 | 显示全部楼层
胖子阳 发表于 2016-2-29 18:35
那我用一个不知道多少电压的电池给stm8l供电,怎样测得这个电池的电压?只读adc1的DR寄存器,它的值接近于40 ...

是的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
 楼主| 发表于 2016-3-3 10:42:52 | 显示全部楼层
所以这个方法测供电电压是行不通的
回复

使用道具 举报

0

主题

4

帖子

0

精华

高级会员

Rank: 4

积分
916
金钱
916
注册时间
2016-1-31
在线时间
167 小时
发表于 2017-8-22 20:50:52 | 显示全部楼层
楼主是如何解决STM8L151单片机电池供电,然后测量电池的电压的???
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
 楼主| 发表于 2017-8-24 10:23:17 | 显示全部楼层
s414545584 发表于 2017-8-22 20:50
楼主是如何解决STM8L151单片机电池供电,然后测量电池的电压的???

采用的是STM8内部的Vref电压作为基准,通过测它的采样值测电压的
回复

使用道具 举报

0

主题

4

帖子

0

精华

高级会员

Rank: 4

积分
916
金钱
916
注册时间
2016-1-31
在线时间
167 小时
发表于 2018-3-9 19:13:16 | 显示全部楼层
胖子阳 发表于 2017-8-24 10:23
采用的是STM8内部的Vref电压作为基准,通过测它的采样值测电压的

我也测到了,可是长时间使用的时候,不知道它怎么了,就乱显示了,尴尬
回复

使用道具 举报

13

主题

85

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1897
金钱
1897
注册时间
2016-8-20
在线时间
238 小时
发表于 2018-4-11 17:23:06 | 显示全部楼层
胖子阳 发表于 2017-8-24 10:23
采用的是STM8内部的Vref电压作为基准,通过测它的采样值测电压的

你好,你是怎么选择的内部Vref作为ADC的参考电压的呢?我这里库函数不会操作,我最近也在搞这个,不过我的板子上面的Vref+这个脚是接的标准的3.0V的参考,不知道怎么切换到内部Vref去呢?可以告知一下吗
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
 楼主| 发表于 2018-4-12 08:28:57 | 显示全部楼层
ChaserMCU 发表于 2018-4-11 17:23
你好,你是怎么选择的内部Vref作为ADC的参考电压的呢?我这里库函数不会操作,我最近也在搞这个,不过我 ...

需要找到STM8内部Vref所在通道,然后对Vref进行采样,STM8的Vref好像是1.224V,具体需要看芯片吧,附我用的将Vref作为ADC的参考电压程序图
微信图片_20180412082741.png
微信图片_20180412082735.png
回复

使用道具 举报

13

主题

85

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1897
金钱
1897
注册时间
2016-8-20
在线时间
238 小时
发表于 2018-4-12 08:42:16 | 显示全部楼层
ADC_ChannelCmd(ADC1,ADC_Channel_Vrefint,ENABLE)
ADC_VrefintCmd(ENABLE);
你的这两句应该是从外部Vref+切换到内部Vref=1.224V上面去的意思是吧?但是你要测量的通道呢?好像没有打开哦,如果按照你上面的代码来运行的话,测量的通道是哪一个呢?
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
 楼主| 发表于 2018-4-12 09:23:56 | 显示全部楼层
ChaserMCU 发表于 2018-4-12 08:42
ADC_ChannelCmd(ADC1,ADC_Channel_Vrefint,ENABLE)
ADC_VrefintCmd(ENABLE);
你的这两句应该是从外部Vref ...

直接使能这个通道后,测得的数值就是参考电压的采样值了
微信图片_20180412091843.png
回复

使用道具 举报

13

主题

85

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1897
金钱
1897
注册时间
2016-8-20
在线时间
238 小时
发表于 2018-4-12 11:12:01 | 显示全部楼层
ADC_ChannelCmd (ADC1,ADC_Channel_9,ENABLE);//ADC1 AIN9通道使能
ADC_VrefintCmd(ENABLE);
我可以这样操作吗?就是想实现用内部参考电压1.224V,然后用AD的通道9去采集数据,而不是用ADC_Channel_Vrefint这个通道呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-27 06:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表