亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CW32模塊使用 MAX7219四合一點陣模塊

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-05-12 16:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

四合一點陣顯示模塊采用MAX7219作為控制,它是一種集成化的串行輸入/輸出共陰極顯示驅(qū)動器,它連接微處理器與8位數(shù)字的7段數(shù)字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED。其上包括一個片上的B型BCD編碼器、多路掃描回路,段字驅(qū)動器,而且還有一個8*8的靜態(tài)RAM用來存儲每一個數(shù)據(jù)。只有一個外部寄存器用來設(shè)置各個LED的段電流。它可以連接所有通用的微處理器。每個數(shù)據(jù)可以尋址在更新時不需要改寫所有的顯示。MAX7219同樣允許用戶對每一個數(shù)據(jù)選擇編碼或者不編碼。

整個設(shè)備包含一個150μA的低功耗關(guān)閉模式,模擬和數(shù)字亮度控制,一個掃描限制寄存器允許用戶顯示1-8位數(shù)據(jù),還有一個讓所有LED發(fā)光的檢測模式。

只需要3個IO口即可驅(qū)動1個點陣!點陣顯示時無閃爍!支持級聯(lián)!

一、二、 模塊來源?

采購鏈接
資料下載鏈接: https://pan.baidu.com/s/19WdOd8D2QlPi1Q_EWlb3fQ
資料提取碼:b822


產(chǎn)品實物展示

2、規(guī)格參數(shù)?

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

通信協(xié)議:串行通信

管腳數(shù)量:5 Pin(2.54mm間距排針

以上信息見廠家資料文件

三、移植過程?

我們的目標是將例程移植至MSPM0G3507開發(fā)板上。首先要獲取資料,查看數(shù)據(jù)手冊應(yīng)如何實現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1. 查看資料?

3.1.1. 時序講解?

wKgZO2ggZAiABQ1RAAErLW5wGls044.jpg

無論數(shù)據(jù)輸入或輸出CS端必須為低電平。然后數(shù)據(jù)在CS端的上升沿被載入數(shù)據(jù)寄存器或控制寄存器。CS端在第 16個時鐘的上升沿之后,下個時鐘上升沿之前變?yōu)楦唠娖?,否則數(shù)據(jù)將會丟失。

對 MAX7219 來說,串行數(shù)據(jù)在 DIN 輸入 16 位數(shù)據(jù)包,在CLK的上升沿數(shù)據(jù)均移入到內(nèi)部 16 位移位寄存器。即DIN不能在CLK的上升沿時進行數(shù)據(jù)變換。

3.1.2. 數(shù)據(jù)位講解?

DIN傳輸?shù)?6位數(shù)據(jù)包說明,見表格000。其中D8-D11 為寄存器地址位。D0-D7 為數(shù)據(jù)位。D12-D15 為無效位。

wKgZPGggZAiAbtIvAADtVxzl8Zw053.jpg

根據(jù)以上的時序說明和傳輸格式,實現(xiàn)的數(shù)據(jù)傳輸代碼。

//向MAX7219寫入字節(jié)
//dat寫入的數(shù)據(jù)
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);//確認CS拉低
    for(i=8;i>=1;i--)//傳輸8位
    {
        MAX7219_CLK(0);//拉低CLK
        //當(dāng)前數(shù)據(jù)位是否為1
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

//向MAX7219寫入數(shù)據(jù)
//address寫入地址  dat寫入數(shù)據(jù)
void Write_Max7219(uint8_t address,uint8_t dat)
{
    //CS拉低
    MAX7219_CS(0);
    //傳輸高8位數(shù)據(jù)(寄存器地址)
    Write_Max7219_byte(address);
    //傳輸?shù)?位數(shù)據(jù)(數(shù)據(jù))
    Write_Max7219_byte(dat);
    //CS拉高
    MAX7219_CS(1);
}

3.1.3. 關(guān)鍵寄存器講解?

相關(guān)寄存器地址,見下表。這里先講解0X09譯碼方式寄存器。

wKgZO2ggZAmAHG8DAAEq2eAvk8Q438.jpg

我們發(fā)送的數(shù)據(jù)位是16位,而進入譯碼方式寄存器只使用到了D15-D8數(shù)據(jù)位(0x09),還有D7到D0沒有設(shè)置。而根據(jù)數(shù)據(jù)手冊的說明,關(guān)于譯碼方式寄存器的D7-D0的設(shè)置在數(shù)據(jù)手冊的表格4.

wKgZPGggZAqAQNaRAAD9kH7m84Q887.jpg

按照圖中所示,如果要設(shè)置譯碼方式為全部數(shù)碼管都進行譯碼,那么要發(fā)送:

//高8位=0x09(寄存器地址), 低8位=0x00(數(shù)據(jù))
Write_Max7219(0x09,0x00);

點陣是通過一個個像素點顯示,要在8x8點陣上顯示個字符,需要以下兩步:

占據(jù)屏幕上的一塊地方,大小由字體大小說了算;

在占據(jù)的地方上依次控制每個像素點是否顯示。

比如一個8x8字體大小的字符,表示水平方向需要8個像素點,垂直方向需要8個像素點。在這塊8x8的地盤上,每個像素點是否顯示由字模說了算,字模中的每1位數(shù)據(jù)表示一個像素點,如果該位為0則表示此處像素點不顯示、為1則表示顯示(陰碼規(guī)則)。 以下為 逐行式,順向(高位在前),陰碼格式輸出的字模數(shù)據(jù)。在程序中逐位讀取字模,如果該位為0則該點點亮,如果該位為1則滅。

wKgZO2ggZAqANMv6AAAN4J2OPJU589.jpg

字模例子

0x7C,第一行顯示 0111 1100
0x42,第二行顯示 0100 0010
0x02,第三行顯示 0000 0010
0x04,第四行顯示 0000 0100
0x08,第五行顯示 0000 1000
0x30,第六行顯示 0011 0000
0x42,第七行顯示 0100 0010
0x7E 第八行顯示 0111 1110
(一共8行)

如果想要第0行顯示一條直線,應(yīng)如何操作?

wKgZO2ggZAmAHG8DAAEq2eAvk8Q438.jpg

先在數(shù)據(jù)手冊中找到關(guān)于第0個行的寄存器地址。根據(jù)右圖顯示得知,第0個數(shù)碼管的地址是0X01知道地址后,根據(jù)數(shù)據(jù)手冊提示找到數(shù)據(jù)位設(shè)置表,因為全部沒有進行譯碼,那么只需要發(fā)送:

//高8位=0x01(寄存器地址), 低8位=0xff(數(shù)據(jù))
Write_Max7219(0x01,0xff);//第0行顯示一條直線

wKgZPGggZAqAN104AACxdkB3hVU576.jpg

3.2. 引腳選擇?

該模塊有10個引腳,其中有5個是接入下一個級聯(lián)的點陣。如果不接入下一個級聯(lián)的點陣,則只要接5個引腳,具體引腳連接見下表。

數(shù)碼管模塊 開發(fā)板
VCC 5V
GND GND
DIN PB10
CS PB13
CLK PB15

3.3. 移植至工程?

我們新建兩個文件分別是 bsp_DotMatrix.cbsp_DotMatrix.h ,然后將C文件添加至工程中,將h文件路徑添加到工程中。

wKgZO2ggZAuADzXsAAA3TH20HLs472.jpg

在文件bsp_DotMatrix.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#include "bsp_DotMatrix.h"
#include "stdio.h"

/******************************************************************
 * 函 數(shù) 名 稱:MAX7219_GPIO_Init
 * 函 數(shù) 說 明:初始化MAX7219引腳
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void MAX7219_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    RCC_MAX7219_ENABLE();        // 使能GPIO時鐘

    GPIO_InitStruct.Pins =  GPIO_MAX7219_CLK|        // GPIO引腳
                            GPIO_MAX7219_DIN|
                            GPIO_MAX7219_CS;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;      // 推挽輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         // 輸出速度高
    GPIO_Init(PORT_MAX7219, &GPIO_InitStruct);       // 初始化
}

/******************************************************************
 * 函 數(shù) 名 稱:Write_Max7219_byte
 * 函 數(shù) 說 明:向MAX7219寫入字節(jié)
 * 函 數(shù) 形 參:dat寫入的數(shù)據(jù)
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);
    for(i=8;i>=1;i--)
    {
        MAX7219_CLK(0);
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

在文件bsp_DotMatrix.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#ifndef _BSP_DOTMATRIX_H_
#define _BSP_DOTMATRIX_H_

#include "board.h"


#define RCC_MAX7219_ENABLE()    __RCC_GPIOB_CLK_ENABLE()

#define PORT_MAX7219            CW_GPIOB

#define GPIO_MAX7219_CLK        GPIO_PIN_15
#define GPIO_MAX7219_DIN        GPIO_PIN_10
#define GPIO_MAX7219_CS         GPIO_PIN_13


#define MAX7219_CLK(X) GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_CLK, X?GPIO_Pin_SET:GPIO_Pin_RESET)
#define MAX7219_DIN(X) GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_DIN, X?GPIO_Pin_SET:GPIO_Pin_RESET)
#define MAX7219_CS(X)  GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_CS,  X?GPIO_Pin_SET:GPIO_Pin_RESET)



void Write_Max7219(uint8_t address,uint8_t dat);
void Write_Max7219_2(unsigned char address,unsigned char dat);
void Write_Max7219_AllOff(void);
void MAX7219_Init(void);
void Max7219_display(uint8_t* show1, uint8_t* show2, uint8_t* show3, uint8_t* show4);
#endi

四、移植驗證?

在自己工程中的main主函數(shù)中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_DotMatrix.h"

unsigned char disp1[12][8]={//一共12行

{0x3C,0x42,0x42,0x42,0x42,0x42,0x66,0x38},/*"0",0*/

{0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x18},/*"1",1*/

{0x7C,0x42,0x02,0x04,0x08,0x30,0x42,0x7E},/*"2",2*/

{0x7C,0x46,0x04,0x18,0x06,0x02,0x42,0x3C},/*"3",3*/

{0x0C,0x14,0x14,0x24,0x44,0x3C,0x04,0x0C},/*"4",4*/

{0x3E,0x40,0x58,0x64,0x02,0x02,0x42,0x3C},/*"5",5*/

{0x3E,0x40,0x48,0x76,0x42,0x42,0x42,0x3C},/*"6",6*/

{0x7E,0x04,0x04,0x08,0x10,0x10,0x10,0x10},/*"7",7*/

{0x7C,0x42,0x62,0x3C,0x44,0x42,0x42,0x3C},/*"8",8*/

{0x7C,0x42,0x42,0x46,0x3A,0x02,0x44,0x38},/*"9",9*/

{0x3A,0x04,0x04,0x24,0x24,0x18,0x08,0x7E},/*"立",10*/

{0x52,0x4E,0x76,0xD6,0x56,0x76,0x4A,0x4E},/*"創(chuàng)",11*/
};


int main(void)
{

    board_init();

    uart1_init(115200);

    MAX7219_Init();
    Write_Max7219_AllOff();
    printf("MAX7219 demo startrn");


    while(1)
    {
        //第一個點陣顯示disp1數(shù)組的第10行內(nèi)容
        //第二個點陣顯示disp1數(shù)組的第11行內(nèi)容
        //第三個點陣顯示disp1數(shù)組的第7行內(nèi)容
        //第四個點陣顯示disp1數(shù)組的第6行內(nèi)容
        Max7219_display(disp1[10],disp1[11], disp1[7], disp1[6]);
        delay_ms(1000);
    }

}

上電效果:顯示“立創(chuàng)76”

wKgZPGggZAyAJmhTAAYznPsceYo888.jpg

移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1xXCdgOcDR8lY7poyH9vayA?pwd=LCKF 提取碼:LCKF

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5527

    瀏覽量

    128581
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    278

    瀏覽量

    1631
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    錦浪科技四合一混合儲能逆變器助力迎峰度夏

    面對高溫高負荷挑戰(zhàn),儲能技術(shù)已成為構(gòu)建穩(wěn)定、高效、低碳電力系統(tǒng)的關(guān)鍵支撐。錦浪四合一混合儲能逆變器以三大核心優(yōu)勢助力迎峰度夏。
    的頭像 發(fā)表于 07-17 15:42 ?1425次閱讀

    用Wi-Fi藍牙模組Ai-M62-CBS做個電子沙漏

    制作個大小合適的外形。另外搭配鋰電池和充放電模塊,實現(xiàn)便攜不插線的使用。 2. 硬件說明 硬件上主要使用了Ai-M62-CBS開發(fā)板,兩個Max7219點陣
    的頭像 發(fā)表于 07-08 10:32 ?464次閱讀
    用Wi-Fi藍牙模組Ai-M62-CBS做<b class='flag-5'>一</b>個電子沙漏

    CW32模塊使用 0.91寸彩屏

    、模塊來源 產(chǎn)品實物展示: ? 資料下載鏈接:https://pan.baidu.com/s/1fKmD5lr4bA0WB54ukonI-A 資料提取碼: 1111 二、規(guī)格參數(shù) 以下信息見廠家
    的頭像 發(fā)表于 07-01 15:20 ?477次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 0.91寸彩屏

    5050 RGBW 四合一全彩 LED 燈珠

    20mA*4 功能性5050 RGBW 四合一全彩 LED 燈珠是種集成了紅(Red)、綠(Green)、藍(Blue)和白(White)種顏色 LED 芯片的照明元件。這種燈珠因其多功能性和高靈活性,在現(xiàn)代照明領(lǐng)域 產(chǎn)品特
    發(fā)表于 06-27 10:02

    CW32模塊使用】1.8寸彩色觸摸屏

    、模塊來源 模塊實物展示: ? 資料下載鏈接:https://pan.baidu.com/s/1n_vp38V7ij88PUGpbJPd7Q 資料提取碼:8888 二、規(guī)格參數(shù) 工作電壓
    的頭像 發(fā)表于 05-11 16:14 ?1060次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】1.8寸彩色觸摸屏

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布個重大喜訊——武漢芯源半導(dǎo)體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?944次閱讀
    代碼+案例+生態(tài):武漢芯源半導(dǎo)體<b class='flag-5'>CW32</b>嵌入式開發(fā)實戰(zhàn)正式出版

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們: 大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布個重大喜訊——武漢芯源半導(dǎo)體的單片機CW32正式出書啦!《基于ARM Cortex-M0+
    發(fā)表于 03-03 15:14

    CW32模塊使用 WS2812彩燈

    有高精度的內(nèi)部 振蕩器和可編程定電流控制部分,有效保證了像素光的顏色高度致。 、模塊來源 模塊實物展示: ? 資料鏈接:https:/
    的頭像 發(fā)表于 02-24 11:37 ?711次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 WS2812彩燈

    2.0寸顯示屏,輕薄低功耗12864點陣COG顯示屏

    2.0寸單色LCD液晶顯示屏12864圖形點陣,輕薄低功耗128*64點陣COG顯示屏
    的頭像 發(fā)表于 02-19 12:02 ?934次閱讀
    2.0寸顯示屏,輕薄低功耗12864<b class='flag-5'>點陣</b>COG顯示屏

    CW32模塊使用 紅外接收模塊

    模塊來源 模塊實物展示: ? 資料鏈接:https://pan.baidu.com/s/1dEWVMIFDWb7k1NcsRy5hHA 資料提取碼:uucv 二、規(guī)格參數(shù) 1.CR2025環(huán)保
    的頭像 發(fā)表于 01-23 13:16 ?745次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外接收<b class='flag-5'>模塊</b>

    CW32模塊使用 EC-01G NBIOT+GPS模塊

    模塊來源 模塊實物展示: 資料鏈接:https://docs.ai-thinker.com/nb-iot 二、規(guī)格參數(shù) 工作電壓:3.0V-3.6V 工作電流:IMAX = 170mA
    的頭像 發(fā)表于 01-23 13:12 ?833次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 EC-01G NBIOT+GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 NEO-6M GPS模塊

    。模塊的高靈敏度、小靜態(tài)漂移、低功耗及輕巧的體積,適用于車載、手持設(shè)備如PDA,車輛監(jiān)控、手機、攝像機及其他移動定位系統(tǒng)的應(yīng)用,是GPS產(chǎn)品應(yīng)用的好選擇。 、模塊來源 模塊實物展示:
    的頭像 發(fā)表于 01-23 13:06 ?1217次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 NEO-6M GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 HC05藍牙模塊

    HC-05 藍牙串口通信模塊,是基于 Bluetooth Specification V2.0 帶 EDR 藍牙協(xié)議的數(shù)傳模塊。無線工作頻段為 2.4GHz ISM,調(diào)制方式是 GFSK。模塊最大
    的頭像 發(fā)表于 01-23 12:57 ?832次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 HC05藍牙<b class='flag-5'>模塊</b>

    CW32模塊使用 紅外解碼編碼模塊

    格式設(shè)備,如大部分電視機、機頂盒、DVD、電風(fēng)扇等電器設(shè)備。 只需要利用到單片機的串口通信知識,通過串口發(fā)送指定的指令進行控制模塊發(fā)射;通過串口接收方式進行紅外解碼操作,獲取遙控編碼信息。也可以使用2個模塊實現(xiàn)無線操控。 、
    的頭像 發(fā)表于 01-23 12:56 ?1038次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外解碼編碼<b class='flag-5'>模塊</b>

    CW32模塊使用 BMP180氣壓傳感器

    、模塊來源 模塊實物展示: ? 資料下載鏈接: https://pan.baidu.com/s/1miTIphm 二、規(guī)格參數(shù) 工作電壓:1.8~3.6V 工作電流:0.1~1000uA 溫度精度
    的頭像 發(fā)表于 12-05 12:06 ?902次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 BMP180氣壓傳感器