OpenEdv-开源电子网

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

有点郁闷,这应该是个很简单的问题

[复制链接]

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2017-8-5 16:34:23 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 xueshawu 于 2017-8-5 16:36 编辑

1.png

如上图,类似于LED点阵一样的, 一共采用 7个GPIO直接控制;
我刚开始想的就是跟点亮LED点阵一样的; 4行(LED_R0;LED_R1;LED_R2;LED_R3),3列(LED_C0;LED_C1;LED_C2)
控制  就应该是这个 思路,  首先 将某一行 置高电平,比如 LED_R0_H, 然后 某一列置低,比如  LED_C0_L; 最后得到的效果就是 1 被点亮;
但是,事实并不是这样的,我将LED_R0置高之后, 1 2 3都 亮了;然后,我就在想 应该是列的PIN脚 GPIO模式没有设置合理;
然后,就开始改了,最开始我改成模拟 ,然后通过 ODR寄存器 置位,让LED_C0_L,结果没反应,一个灯都没亮;
按道理,肯定是用那个 扫描的方式,通过行 置高 ,列置低 来定位 一个LED的;我为什么 就是做不到,没想通!
可能 ,思维卡在哪里,还请 指点一下

与其感慨路难行,不如马上出发
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
发表于 2017-8-5 17:18:30 | 显示全部楼层
你需要把所有的IO口有个固定的电平输出吧
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-8-5 17:42:54 | 显示全部楼层
扫描按键才直接接的。点亮led你要考虑io的驱动能力,你不能这么做,要不你就加三级管来驱动,要不就选个专门的驱动led芯片,也很简单,例如fd650
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2017-8-7 08:38:18 | 显示全部楼层
hgr211 发表于 2017-8-5 17:42
扫描按键才直接接的。点亮led你要考虑io的驱动能力,你不能这么做,要不你就加三级管来驱动,要不就选个专 ...

STM32的电流  驱动  这12个 LED还是可以的
与其感慨路难行,不如马上出发
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2017-8-7 08:39:13 | 显示全部楼层
昊430 发表于 2017-8-5 17:18
你需要把所有的IO口有个固定的电平输出吧

现在的问题 就在这里啊,接到阴极的 IO口不需要输出低就能 亮
与其感慨路难行,不如马上出发
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-8-7 10:00:53 | 显示全部楼层
所有的io都设置成推挽输出模式试试。你就两个io,阴极配置输入模式,肯定不行的。我估计要配置推挽输出模式。我是一般不让io直接驱动器件的,都是驱动三极管来转换下。直接驱动器件多了容易出问题。工作了,也许一个失误,要付出太多成本。
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2017-8-7 11:52:24 | 显示全部楼层
hgr211 发表于 2017-8-7 10:00
所有的io都设置成推挽输出模式试试。你就两个io,阴极配置输入模式,肯定不行的。我估计要配置推挽输出模式 ...

我最开始 LED的配置,两端都是 OUT_PP;然后,阳极只输出高,就会一行 3个灯 都亮,阴极根本就不需要去输出低,
与其感慨路难行,不如马上出发
回复

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2017-8-7 12:38:40 | 显示全部楼层
1、电路没问题,程序有点问题,应该这样子: LED_R0_H; LED_R1_L; LED_R2_L; LED_R3_L; LED_C0_L; LED_C1_H; LED_C2_H;
2、横列都要设置好,不能只是单独设置一组引脚
3、上电输出默认是低电平的
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2017-8-7 13:48:48 | 显示全部楼层
xxssl 发表于 2017-8-7 12:38
1、电路没问题,程序有点问题,应该这样子: LED_R0_H; LED_R1_L; LED_R2_L; LED_R3_L; LED_C0_L; LED ...

现在就是,列都还没控制 LED就会亮;列 不需要输出低电平,只要行 输出高,一行就会都亮
与其感慨路难行,不如马上出发
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2017-12-2
在线时间
3 小时
发表于 2017-12-2 21:14:34 | 显示全部楼层
如果把列的引脚电平通过外部电阻拉高呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-14 18:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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