OpenEdv-开源电子网

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

我用adc采集LED0引脚的电压,并且控制LED0周期性闪烁,检测到电压异常

[复制链接]

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
发表于 2019-12-12 17:20:31 | 显示全部楼层 |阅读模式
5金钱
LED是通过io口输出低电平来点亮的,也就是说LED0的io口(PB1)在灯亮的时候应该是低电平,但是我通过adc采集PB1的电压发现:
灯亮时电压为3.3V,灯灭是电压为0V。

求解?


LED硬件图

LED硬件图

灯亮时电压为3.3V

灯亮时电压为3.3V

灯灭时电压约为0V

灯灭时电压约为0V
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3625
金钱
3625
注册时间
2019-8-14
在线时间
1054 小时
发表于 2019-12-12 17:50:38 | 显示全部楼层
想要一个灯亮的话,不应该是有边是正极,一边是负极吗,现在正极有了,芯片不是应该给个低电平吗,低电平就是负极,这样才有电压的通过,灯才可以亮,没有电压哪里可以驱动器件呢
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-12 18:10:17 | 显示全部楼层
hou18 发表于 2019-12-12 17:50
想要一个灯亮的话,不应该是有边是正极,一边是负极吗,现在正极有了,芯片不是应该给个低电平吗,低电平就 ...

ADC测量的应该是LED左边的电压吧,低电平灯才会亮
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-12 18:54:57 | 显示全部楼层
我检测另外一个不亮的LED,电压一直是3.3V,就是搞不懂为什么LED0是反的
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2019-12-12 19:23:41 | 显示全部楼层
AD采集的值会不会是上一次采集对值?
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-12 19:29:59 | 显示全部楼层
DongInker 发表于 2019-12-12 19:23
AD采集的值会不会是上一次采集对值?

什么意思?我采集别的都是正确的额,只有LED闪烁时电压值是反的
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-13 10:53:42 | 显示全部楼层
别沉啊,大神来帮忙看看,是我哪里理解错了吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-12-15 00:18:55 | 显示全部楼层
是不是测错了IO口?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-16 10:06:07 | 显示全部楼层
正点原子 发表于 2019-12-15 00:18
是不是测错了IO口?

原子哥,我设置的LED0闪烁,测的是PB1口,我重新下载例程的代码发现测的电压也是相反的。然后我修改了程序,通过定时器检测上升沿触发ADC,检测到灯亮时电压0,灯灭电压为3.3v。但是我搞不懂软件触发为什么会检测到相反的数值?
回复

使用道具 举报

10

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2019-9-5
在线时间
134 小时
发表于 2019-12-16 10:17:11 | 显示全部楼层
走投无路的卡卡 发表于 2019-12-16 10:06
原子哥,我设置的LED0闪烁,测的是PB1口,我重新下载例程的代码发现测的电压也是相反的。然后我修改了程 ...

首先你的电路图是这样的:3.3v-led-io口,所以当你io口3.3v时,左右电压相等led无法导通。相反io口0v时,led另一端3.3v,所以你懂的
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-16 10:23:43 | 显示全部楼层
黄faxian 发表于 2019-12-16 10:17
首先你的电路图是这样的:3.3v-led-io口,所以当你io口3.3v时,左右电压相等led无法导通。相反io口0v时, ...

所以问题来了,灯亮时io口的电压应该是0v,但是实际测出来是3.3v
回复

使用道具 举报

10

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2019-9-5
在线时间
134 小时
发表于 2019-12-16 10:32:00 | 显示全部楼层
走投无路的卡卡 发表于 2019-12-16 10:23
所以问题来了,灯亮时io口的电压应该是0v,但是实际测出来是3.3v

提一个疑问:你测得是io口输出电压还是3.3v经过led后分压得到的电压。我觉得这个可能是出错原因
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-16 10:38:34 | 显示全部楼层
黄faxian 发表于 2019-12-16 10:32
提一个疑问:你测得是io口输出电压还是3.3v经过led后分压得到的电压。我觉得这个可能是出错原因

开发板的引脚应该都是io口的输出电压吧?另外我通过定时器外部触发adc的方式检测电压,得到的值是准确的。这也能表明跟io没有关系
回复

使用道具 举报

10

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2019-9-5
在线时间
134 小时
发表于 2019-12-16 10:42:33 | 显示全部楼层
要不你看一下源代码,看一下他是不是低电平表示开灯,要是源代码是这样的话估计是原理图画错了
回复

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-16 15:08:54 | 显示全部楼层
我现在通过三种方式触发ADC转换(软件,定时器和外部触发),软件触发使用的是原子哥的例程,外部触发是通过PD11引脚检测上升沿和下降沿进入中断。其中定时器触发检测到的LED的电压是准确的(灯亮时电压为0v,灯灭时电压为3.3v),另外两种方式检测到的电压与实际相反(灯亮时3.3v,灯灭时0v),有没有跟我遇到同样情况的?你们可以试一下原子哥的ADC例程代码,看看是不是我说的这种现象
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-12-17 00:17:01 | 显示全部楼层
走投无路的卡卡 发表于 2019-12-16 10:06
原子哥,我设置的LED0闪烁,测的是PB1口,我重新下载例程的代码发现测的电压也是相反的。然后我修改了程 ...

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

使用道具 举报

9

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2018-8-8
在线时间
50 小时
 楼主| 发表于 2019-12-17 16:46:34 | 显示全部楼层

就是正点原子ADC例程实验使用的方式。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-12-19 02:00:45 | 显示全部楼层
走投无路的卡卡 发表于 2019-12-17 16:46
就是正点原子ADC例程实验使用的方式。。。

那就是直接你调用读取adc的函数读取IO电平,不可能出错才对,你用万用表监控下
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-21 12:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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