Skip to content

redocCheng/max7219

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

max7219

介绍

本软件包是在数码管上应用 MAX7219 的驱动包。

支持情况

包含设备 数码管驱动
通讯接口
IIC
SPI

目录结构

名称 说明
examples 例子目录
inc 头文件目录
src 源代码目录
port 移植目录
doc 文档

许可证

max7219 package 遵循 Apache-2.0 许可,详见 LICENSE 文件。

依赖

  • RT-Thread 3.0+
  • RT-Thread 4.0+
  • SPI 驱动:max7219 使用 SPI 进行数据通讯,需要系统 SPI 驱动支持;

获取软件包

使用 max7219 package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:

RT-Thread online packages
    peripheral libraries and drivers --->
        [*] MAX7219: for the digital tube
            (1)   the chips of digital tubes
            (spi1) spi bus name
            (spi10) spi device name
                Version (v1.0.0)  --->

然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。

设置参数

配置时需要修改项目中的 max7219_cfg.h 文件,和配置 menuconfig。

芯片数量:

MAX7219_CHIPS_NUMBER 可通过 menuconfig 中的 (1) the chips of digital tubes 选项设置,

也可以直接在 max7219_cfg.h cfg 文件中设置,一片就设置 1。

#define MAX7219_CHIPS_NUMBER    1

芯片的共极配置

MAX7219_CHIPS_SCAN_NUMBER_TABLE 配置单个芯片的共极,以便后续扫描计算; 每个max7219可支持8个数码管,所以这里采用二进制从左到右进行表示,既 0B11111111,有为 1 ,没有为 0。 比如挂了一个芯片,用了dig 1到6,应设置 0B11111100 ,对应十六进制 0xfc。

#define MAX7219_CHIPS_SCAN_NUMBER_TABLE     \
{                                           \
    0xfc,                                   \
}

两个及其多个芯片级联时,只需要根据芯片顺序,依次往下配置即可, 例如,级联了3片芯片:

#define MAX7219_CHIPS_SCAN_NUMBER_TABLE     \
{                                           \
    0xfc,                                   \
    0xa5,                                   \
    0x3f,                                   \
}

芯片配置如下表:

芯片一 芯片二 芯片三
配置 0xfc 0xa5 0x3f
芯片配置 1 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1
位置标号 1 2 3 4 5 6 - - 7 - 8 - - 9 - 10 - - 11 12 13 14 15 16

如下图,从左到右显示:

config.png

API说明

  1. 消隐全部数码管
int max7219_clear_all(void)
参数 注释
void 没有
返回 注释
---- ----
RT_EOK 正常
-RT_ERROR 异常
  1. 向数码管寄存器写入线段数据
int max7219_write_dig(uint16_t dig, uint8_t data);
参数 注释
dig 在所有数码管中的位置,未加入配置的数码管,不进行计数
data 数据
返回 注释
---- ----
RT_EOK 正常
-RT_ERROR 异常

说明:直接将数据写入显示寄存器,即直接控制(DP/A/B/C/D/E/F/G)。

  1. 向数码管寄存器写入数字和字符
int max7219_write(uint16_t dig, uint8_t data);
参数 注释
dig 在所有数码管中的位置,同上
data 数字、字符和点
返回 注释
---- ----
RT_EOK 正常
-RT_ERROR 异常

说明:支持数字:0-0xf;支持右方字符: ' '(空格)、 '-''_''H''h''P''p''r'.;当最高位有效时,即 0x80,同时显示点。

    max7219_write(1,1);
    max7219_write(2,2);
    max7219_write(3,3);
    max7219_write(4,4);
    max7219_write(5,5);
    max7219_write(6,6);
    max7219_write(7,7);
    max7219_write(8,8);
    max7219_write(9,9);
    max7219_write(10,0xa);
    max7219_write(11,0xb);
    max7219_write(12,0xc);
    max7219_write(13,0xd);
    max7219_write(14,0xe);
    max7219_write(15,0xf);
    max7219_write(16,0x80);
    max7219_write(17,'H');
    max7219_write(18,'P');
    max7219_write(19,'_');
    max7219_write(20,' ');
    max7219_write(21,'-');
    max7219_write(22,'L');
    max7219_write(23,'r');
    max7219_write(24,'.');

all_display.png

  1. 亮度设置
int max7219_intensity_set(uint8_t value)
参数 注释
value 设置亮度(0-0x0f)
返回 注释
---- ----
RT_EOK 成功
!=RT_OK 异常

示例

使用示例在 examples 下。

芯片手册

芯片手册在 max7219.pdf 下。

注意事项

  1. 配置参数中的dig和硬件设计的数码管顺序有关。
  2. 建议只用非编码模式,所以不加编码配置选项,可以在drv_max7219.hMAX7219_INFO_DEFAULT 选择配置,并且采用max7219_write_dig函数去操作。
  3. 其他自定义字符,编码要去手册里面找,操作方式同上。
  4. 还没有用到点阵的驱动,后续可能会在这块优化更新。

联系方式 & 感谢

About

a MAX7219 package for the digital tube

Resources

License

Stars

Watchers

Forks

Packages

No packages published