本文转自网络,作者:东小东
出处:https://www.cnblogs.com/dongxiaodong/p/13082539.html
实现效果
项目实现STM32点阵屏的操作,自动更改显示内容和串口控制显示内容
STM32上电后:
1) 程序将进行行和列的刷新
2) 自动递增显示0-9变化
3) 进行矩形由内向外动画
4) 等等串口输出控制,输出范围为0x00-0x09,点阵屏将显示输入的数字
代码为精简的最小系统,方便后续的扩展和移植
视频展示
见文章末尾
环境配置
STM32固件版本:V3.5.0
单片机:STM32 F103C8T6
LED点阵管数码管:共阳1588BS
编程工具:Keil uVision5
LED点阵管数码管认识
1.5英寸LED点阵管数码管8*8红色16pin
有如下两种型号:
l 共阳1588BS
l 共阴1588AS
这里使用的是:共阳1588BS
环境准备
l STM32固件版本:V3.5.0
l 单片机:STM32 F103C8T6
l LED点阵管数码管:共阳1588BS
l 编程工具:Keil uVision5
点阵屏与STM32接线说明
接线编号:
点阵屏1-8:A0、A1、A2、A3、A4、A5、A6、A7
点阵屏9-16:B0、B1、B10、B11、B12、B13、B14、B15
打开/编译/烧写
打开串口助手
连接USB串口模块
上电后自动进行行列刷新
数字自动显示
串口控制:
编码说明
分析得到编码序列:
因为列是固定为低电平,也就是只要行输出高电平,对应的点就点亮,确定行的高低位,设置从上到下为0-7行,所以第0行是十六进制的最低位而7是16进制的最高位。
得到结果分析:
第0列编码:0000 0000 = 0x00
第1列编码:0111 1110 = 0x7E
第2列编码:1010 0001 = 0xA1
第3列编码:1001 0001 = 0x91
第4列编码:1000 1001 = 0x89
第5列编码:1000 0101 = 0x85
第6列编码:0111 1110 = 0x7E
第7列编码:0000 0000 = 0x00
所以得到数字0的编码数组为:
{0x00,0x7E,0xA1,0x91,0x89,0x85,0x7E,0x00}
精彩回顾
神解释:UART/I2C/SPI/1-wire四大通信接口 增量式PID到底是什么?STC单片机自动下载电路