STM32F1与STM32CubeIDE编程实例MAX7219驱动8位7段数码管基于GPIO
STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于GPIO)
MAX7219驱动8位7段数码管(基于GPIO)
1、MAX7219介绍
MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(μPs)连接至多达8位的7段数字LED显示器、条形图显示器或64个独立LED。 片上包括 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器以及存储每个数字的 8x8 静态 RAM。 只需要一个外部电阻来设置所有 LED 的段电流。 MAX7221 与 SPI™、QSPI™ 和 MICROWIRE™ 兼容,并具有限摆率的段驱动器以降低 EMI。

一个方便的 4 线串行接口连接到所有常见的 μP。 可以在不重写整个显示的情况下寻址和更新单个数字。 MAX7219还允许用户为每个数字选择code-B解码或不解码。
这些器件包括一个 150μA 低功耗关断模式、模拟和数字亮度控制、一个允许用户显示 1 到 8 位数字的扫描限制寄存器,以及一个强制所有 LED 亮起的测试模式。

MAX7219具有如下特性:
- 10MHz 串行接口
- 单独的 LED 段控制
- 解码/无解码数字选择
- 150μA 低功耗关断(数据保留)
- 数字和模拟亮度控制
- 上电时显示空白
- 驱动共阴极LED显示屏
- 用于降低 EMI 的限摆率分段驱动器 (MAX7221)
- SPI、QSPI、MICROWIRE 串行接口 (MAX7221)
- 24 引脚 DIP 和 SO 封装
在前面的文章中对MAX7219的驱动及使用做了详细的介绍,请参考:
- Arduino与Proteus仿真实例-MAX7219级联驱动多个8x8LED点阵仿真
- Arduino与Proteus仿真实例-MAX7219单个8x8LED点阵驱动仿真
- Arduino与Proteus仿真实例-MAX7219驱动8位7段数码管仿真
- 8051单片机Proteus仿真与开发实例-MAX7219驱动8位7段数码管仿真
- Arduino与JavaScript开发实例-数码管显示控制-基于Max7219
- Arduino与JavaScript开发实例-LED点阵显示控制(Max7219控制器)
2、MAX7219的GPIO配置
开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
- STM32F1与STM32CubeIDE快速入门-开发环境搭建
- STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
- STM32F1与STM32CubeIDE快速入门-USART/UART串口通信
本次实例的MAX7219配置如下:

3、MAX7219驱动实现
1)MAX7219驱动基本定义
1 | /\* |
2)MAX7219驱动辅助函数定义
1 | // max7219\_gpio.c |
3)MAX7219驱动定义实现
1 | // max7219\_gpio.h |
4)MAX7219数据按位发送底层实现
1 | /\* |
1 | /\* |
4、MAX7219驱动测试
在main.c文件中添加如下代码:
1 | /\* Private includes ----------------------------------------------------------\*/ |
文章来源: https://iotsmart.blog.csdn.net/article/details/125595308
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 秋意寒!
评论