打印
[STM32F0]

还是发帖问一下吧,可能把自己绕进去了

[复制链接]
802|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xueshawu 于 2017-8-5 14:37 编辑

问题其实 很简单,就是LED点阵灯,我想我可能是GPIO模式没设置对;

如上图,一共 4x3 12个LED等,通过STM32 7个独立的PIN来控制,这里是直接接到GPIO的;
我刚开始认为很简单 ,阳极的某一行 置高,然后 阴极的某一列置低 ,就能准确控制某一个灯亮;然后 通过行扫描的方式 做出想要的效果;
然后,问题就来了,我现在单独点亮 一个灯都不行,
阳极 我设置的是 OUT_PP; 最开始 阴极也是 ;
然后,我拉高 某一行的电平,列 的电平都没 动,直接全部 都亮了; 我就有点蒙蔽了,所以还是过来求下指点
沙发
xueshawu|  楼主 | 2017-8-5 14:58 | 只看该作者
其实,现在关键点在于,如何 做到 只有阴极列 电平输出低的时候,才能点亮;现在 只需要 阳极输出高,就亮了;然后,我试了配置成模拟 上拉,貌似不行

使用特权

评论回复
板凳
戈卫东| | 2017-8-5 15:46 | 只看该作者
理论上没问题。

使用特权

评论回复
地板
xueshawu|  楼主 | 2017-8-5 16:14 | 只看该作者
原理 就跟点阵扫描 一样的, 某一行 置高,然后在某一列置低,交叉点就能点亮;

使用特权

评论回复
5
mmuuss586| | 2017-8-5 17:24 | 只看该作者
那阳极输出低电平LED就不亮了呀

使用特权

评论回复
6
请叫我依萨克| | 2017-8-5 19:55 | 只看该作者
阴极推挽置高,想亮的再置低

使用特权

评论回复
7
GHG_2014| | 2017-8-6 10:24 | 只看该作者
IO配置完成后,默认输出低,所以当你行输出高时,列全部输出低。应该将不点亮的列全部输出高。

使用特权

评论回复
8
xueshawu|  楼主 | 2017-8-7 14:22 | 只看该作者
GHG_2014 发表于 2017-8-6 10:24
IO配置完成后,默认输出低,所以当你行输出高时,列全部输出低。应该将不点亮的列全部输出高。 ...

这种方式,一次只能点亮一个 灯,不过 貌似只能这样了,貌似跟STM32的IO结构 有关系

使用特权

评论回复
9
xueshawu|  楼主 | 2017-8-7 17:29 | 只看该作者
请叫我依萨克 发表于 2017-8-5 19:55
阴极推挽置高,想亮的再置低

这个 确实可以实现单独控制,我早就这么干过了,效果很差

使用特权

评论回复
10
xueshawu|  楼主 | 2017-8-7 17:46 | 只看该作者
xueshawu 发表于 2017-8-7 17:29
这个 确实可以实现单独控制,我早就这么干过了,效果很差

可能是我定时器设置的频率太低了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

19

帖子

0

粉丝