你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ARM®mbed OS 提高 之max7219 spi 8x8点阵显示

[复制链接]
anywill 提问时间:2016-11-2 10:28 /





ARM®mbed OS 提高 之max7219 spi 8x8点阵显示
8x8点阵屏通过SPI连接 MAX7219,初始化之后交替显示心形和中字. 使用nucleo SPI接口
硬件:
  • Nucleo070r 板/通用
  • LED 8x8点阵连 MAX7219
T1cP1aXqdXXXXXXXXX_!!0-item_pic.jpg 接线:
MAX7219
nucleo
Note
VCC3V3Power
GNDGNDGround
DIND11MOSI
CSD10Chip select
CLKD13SCLK

/* nucleo_spi_max7219_led8x8
*
* Simple demo to drive a 8x8-as LED matrix by a MAX7219 LED driver IC
* After initialisation two characters (H and W) are displayed alternatively.
* The MAX7219 IC is driven by hardware SPI: SPI0 module at PTD1, PTD2, PTD3.
*/

#include "mbed.h"
//#include "max7219.h" //此头文件未使用
SPI spi(D11, D12, D13);          // Arduino compatible MOSI, MISO, SCLK
//nucleo MOSI, MISO, SCLK
//      PTD2, PTD3, PTD1   
DigitalOut cs(D10);                // Chip select

const unsigned char led1[]= {
    0x0,0x66,0x99,0x81,0x42,0x24,0x18,0x0
};  //心
const unsigned char led2[]= {
    0x3C,0x24,0x24,0xFF,0xFF,0x24,0x24,0x3C
};  //中

/// Send two bytes to SPI bus
void SPI_Write2(unsigned char MSB, unsigned char LSB)
{
    cs = 0;                         // Set CS Low
    spi.write(MSB);                 // Send two bytes
    spi.write(LSB);
    cs = 1;                         // Set CS High
}

/// MAX7219 initialisation 初始化
void Init_MAX7219(void)  
{
    SPI_Write2(0x09, 0x00);         // Decoding off
    SPI_Write2(0x0A, 0x08);         // Brightness to intermediate
    SPI_Write2(0x0B, 0x07);         // Scan limit = 7
    SPI_Write2(0x0C, 0x01);         // Normal operation mode
    SPI_Write2(0x0F, 0x0F);         // Enable display test
    wait_ms(500);                   // 500 ms delay
    SPI_Write2(0x01, 0x00);         // Clear row 0.
    SPI_Write2(0x02, 0x00);         // Clear row 1.
    SPI_Write2(0x03, 0x00);         // Clear row 2.
    SPI_Write2(0x04, 0x00);         // Clear row 3.
    SPI_Write2(0x05, 0x00);         // Clear row 4.
    SPI_Write2(0x06, 0x00);         // Clear row 5.
    SPI_Write2(0x07, 0x00);         // Clear row 6.
    SPI_Write2(0x08, 0x00);         // Clear row 7.
    SPI_Write2(0x0F, 0x00);         // Disable display test
    wait_ms(500);                   // 500 ms delay
}

int main()
{
    cs = 1;                         // CS initially High
    spi.format(8,0);                // 8-bit format, mode 0,0
    spi.frequency(1000000);         // SCLK = 1 MHz
    Init_MAX7219();                 // Initialize the LED controller

    while (1) {
        for(int i=1; i<9; i++)      // Write first character (8 rows)
            SPI_Write2(i,led1[i-1]);
        wait(1);                    // 1 sec delay
        for(int i=1; i<9; i++)      // Write second character
            SPI_Write2(i,led2[i-1]);
        wait(1);                    // 1 sec delay
    }
}
源程序
mbed-8x8.zip (1.36 KB, 下载次数: 67)

评分

参与人数 1 ST金币 +20 收起 理由
zero99 + 20

查看全部评分

收藏 1 评论11 发布时间:2016-11-2 10:28

举报

11个回答
xyx365 回答时间:2016-11-11 21:00:08
不错的教程
anywill 回答时间:2016-11-2 10:32:18
本帖最后由 anywill 于 2016-11-2 10:39 编辑

效果图 64.jpg
zero99 回答时间:2016-11-3 09:50:43
谢谢分享
mark0668 回答时间:2016-11-3 13:20:48

谢谢分享
笑鸟007 回答时间:2016-11-3 14:08:28
谢谢分享!!!
peter001 回答时间:2016-11-4 00:32:18
谢谢分享
anobodykey 回答时间:2016-11-4 14:27:56
不错,不错
zcl201207 回答时间:2016-11-4 20:39:03
lorabbitve 回答时间:2018-7-1 23:53:43
不错,不错
功夫茶 回答时间:2019-12-12 16:51:36
xiexxiefenxiang
功夫茶 回答时间:2019-12-12 16:53:28
收藏

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版