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

[复制链接]
1201|9
 楼主| xueshawu 发表于 2017-8-5 11:59 | 显示全部楼层 |阅读模式
本帖最后由 xueshawu 于 2017-8-5 14:37 编辑

问题其实 很简单,就是LED点阵灯,我想我可能是GPIO模式没设置对;
1.png
如上图,一共 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 | 显示全部楼层
原理 就跟点阵扫描 一样的, 某一行 置高,然后在某一列置低,交叉点就能点亮;
mmuuss586 发表于 2017-8-5 17:24 | 显示全部楼层
那阳极输出低电平LED就不亮了呀
请叫我依萨克 发表于 2017-8-5 19:55 | 显示全部楼层
阴极推挽置高,想亮的再置低
GHG_2014 发表于 2017-8-6 10:24 来自手机 | 显示全部楼层
IO配置完成后,默认输出低,所以当你行输出高时,列全部输出低。应该将不点亮的列全部输出高。
 楼主| xueshawu 发表于 2017-8-7 14:22 | 显示全部楼层
GHG_2014 发表于 2017-8-6 10:24
IO配置完成后,默认输出低,所以当你行输出高时,列全部输出低。应该将不点亮的列全部输出高。 ...

这种方式,一次只能点亮一个 灯,不过 貌似只能这样了,貌似跟STM32的IO结构 有关系
 楼主| xueshawu 发表于 2017-8-7 17:29 | 显示全部楼层
请叫我依萨克 发表于 2017-8-5 19:55
阴极推挽置高,想亮的再置低

这个 确实可以实现单独控制,我早就这么干过了,效果很差
 楼主| xueshawu 发表于 2017-8-7 17:46 | 显示全部楼层
xueshawu 发表于 2017-8-7 17:29
这个 确实可以实现单独控制,我早就这么干过了,效果很差

可能是我定时器设置的频率太低了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部