STM32—8段LED显示

引言

今天偶然发现我的小收纳盒里有一个八段LED显示,那我就灵感突发回忆起我当时学习STM32时的第一天。学习了它我明白了非常多的GPIO的知识以及基础电子元件的使用。

8段LED

话不多说原理图拿上来。

 

共阴/共阳

首先我来讲解一下大家在买元件时显示的共阳极/共阴极 

一块接到GND的叫做共阴极,例如:

黑色框里的是我们的LED里面的一个“段” 我们的IO口提供高电平时,经过电阻,发光二极管导通而发光。这个电阻不是八段LED中的,是为了保护我们的引脚和元件的!所以在使用LED时我们都需要自己接上一个500——1000Ω的电阻!!!!!!(千万要接,二极管导通后相当于一根导线直接帮你短路,然后你就能闻到元件的体香了)

那么共阳极就肯定是,LED直接接到VCC端(老元件时5V,现在买到的基本都是3.3V),记得发光二极管的方向一定要变一下!

引脚定义 

位选

3引脚接GND,8引脚接VCC时你的LED显像管才可以被点亮,这就是位选。我这么说你可能还是一知半解,那么我再详细点,如果你这个是3位的LED显像管,一下可以显示3个数字,那么你需要先将第一位的显像管的第八引脚的电平拉高,其他显像管的八号引脚拉低(选位)。再将我们需要的数字写入!循环这样的操作将三个位填满。

那么我们在操作时该如何写呢!进入代码学习。

选位代码 

我们以共阴极为例,引脚输出高电平点亮(包括后面的教程都使用共阴极)。我们将八号引脚接到GPIOC_Pin_0端。

我不喜欢使用GPIO库里的函数,因为太依赖库会使自己对C++的熟练度大大降低!! 

这里我着重讲讲我们的速度不能为50Hz,这个速度会使自己的LED显示出来的数字频闪,自己可以去试试,在探索中进步。

通过以上代码我们成功实现了使GPIOC的引脚0输出高电平,实现了选位!

选段 

当我们打开LED显示后我们该如何显示我们所需要的数字呢,这就是选段的任务。

一定记得要在IO口与LED显像管之间加入一个电阻哈,我们也是控制IO口输出高电平(共阳极为低电平)来控制显示的数字。【知识点dp表示高位截至代表我们的引脚从低位到高位分别是a,b,c,d,e,f,g,dp】

八个引脚控制数字显示,那么就需要查看你的元件手册了。我也是翻了好久才找到。

 来给你举个例子哈,我要显示“1”,我就需要设置为二进制的0000 0000 0000 0110

a0
b1
c1
d0
e0
f0
g0
dp0
 选段代码

我们选取GPIOC的8-15引脚。其他同上!

这样就可以显示“1”了。

封装

我们每次都这么写就把我们给累死了。所以我们干脆将这些数字封装起来。

记得加上const。zimaku[  ]如果出现指针错误里面的值就会改变,会使显示错误。加上const就会使zimaku[ ]转换成常量存入FLASH中!!! 保证值不会突变。

zimaku[0]就是“0”.zimaku[i]就是“i”。

作业

如果我们是四位八段LED,我们选择PC0-3为控制位,PC8-15为控制段。要求可以显示变量var=124。需要有设计图以及代码图。写完需要检查@我。

 

 

 

  • 35
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值