chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

CW32模塊使用 MAX7219四合一點(diǎn)陣模塊

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

掃碼添加小助手

加入工程師交流群

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

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

只需要3個(gè)IO口即可驅(qū)動(dòng)1個(gè)點(diǎn)陣!點(diǎn)陣顯示時(shí)無(wú)閃爍!支持級(jí)聯(lián)!

一、二、 模塊來(lái)源?

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


產(chǎn)品實(shí)物展示

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

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

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

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

以上信息見廠家資料文件

三、移植過程?

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

3.1. 查看資料?

3.1.1. 時(shí)序講解?

wKgZO2ggZAiABQ1RAAErLW5wGls044.jpg

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

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

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

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

wKgZPGggZAiAbtIvAADtVxzl8Zw053.jpg

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

//向MAX7219寫入字節(jié)
//dat寫入的數(shù)據(jù)
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);//確認(rèn)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位,而進(jìn)入譯碼方式寄存器只使用到了D15-D8數(shù)據(jù)位(0x09),還有D7到D0沒有設(shè)置。而根據(jù)數(shù)據(jù)手冊(cè)的說明,關(guān)于譯碼方式寄存器的D7-D0的設(shè)置在數(shù)據(jù)手冊(cè)的表格4.

wKgZPGggZAqAQNaRAAD9kH7m84Q887.jpg

按照?qǐng)D中所示,如果要設(shè)置譯碼方式為全部數(shù)碼管都進(jìn)行譯碼,那么要發(fā)送:

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

點(diǎn)陣是通過一個(gè)個(gè)像素點(diǎn)顯示,要在8x8點(diǎn)陣上顯示個(gè)字符,需要以下兩步:

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

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

比如一個(gè)8x8字體大小的字符,表示水平方向需要8個(gè)像素點(diǎn),垂直方向需要8個(gè)像素點(diǎn)。在這塊8x8的地盤上,每個(gè)像素點(diǎn)是否顯示由字模說了算,字模中的每1位數(shù)據(jù)表示一個(gè)像素點(diǎn),如果該位為0則表示此處像素點(diǎn)不顯示、為1則表示顯示(陰碼規(guī)則)。 以下為 逐行式,順向(高位在前),陰碼格式輸出的字模數(shù)據(jù)。在程序中逐位讀取字模,如果該位為0則該點(diǎn)點(diǎn)亮,如果該位為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ù)手冊(cè)中找到關(guān)于第0個(gè)行的寄存器地址。根據(jù)右圖顯示得知,第0個(gè)數(shù)碼管的地址是0X01知道地址后,根據(jù)數(shù)據(jù)手冊(cè)提示找到數(shù)據(jù)位設(shè)置表,因?yàn)槿繘]有進(jìn)行譯碼,那么只需要發(fā)送:

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

wKgZPGggZAqAN104AACxdkB3hVU576.jpg

3.2. 引腳選擇?

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

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

3.3. 移植至工程?

我們新建兩個(gè)文件分別是 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ù) 形 參:無(wú)
 * 函 數(shù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:無(wú)
******************************************************************/
void MAX7219_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    RCC_MAX7219_ENABLE();        // 使能GPIO時(shí)鐘

    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ù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:無(wú)
******************************************************************/
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

四、移植驗(yàn)證?

在自己工程中的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)
    {
        //第一個(gè)點(diǎn)陣顯示disp1數(shù)組的第10行內(nèi)容
        //第二個(gè)點(diǎn)陣顯示disp1數(shù)組的第11行內(nèi)容
        //第三個(gè)點(diǎn)陣顯示disp1數(shù)組的第7行內(nèi)容
        //第四個(gè)點(diǎn)陣顯示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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5590

    瀏覽量

    129089
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    281

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    CW32單片機(jī)在智能馬桶的應(yīng)用

    1.溫度感應(yīng)與控制 智能馬桶內(nèi)設(shè)有溫度傳感器,通過CW32單片機(jī)的處理,可以實(shí)時(shí)感知到用戶所需的座圈溫度并根據(jù)用戶的設(shè)定進(jìn)行調(diào)節(jié)。當(dāng)溫度過高或過低時(shí),單片機(jī)將發(fā)出信號(hào),通過控制模塊對(duì)座圈的加熱或制冷
    發(fā)表于 12-04 08:01

    CW32 MCU溫度監(jiān)測(cè)應(yīng)用

    最近,我在項(xiàng)目中使用CW32 MCU,來(lái)實(shí)現(xiàn)個(gè)簡(jiǎn)單的溫度監(jiān)測(cè)系統(tǒng)。CW32的靈活性和性能讓我在這個(gè)應(yīng)用中得心應(yīng)手。以下是我的實(shí)現(xiàn)過程和代碼示例。 應(yīng)用簡(jiǎn)介本項(xiàng)目通過連接個(gè)溫度傳感器
    發(fā)表于 12-03 08:03

    基于芯源CW32 MCU智能家居照明控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    為了實(shí)現(xiàn)遠(yuǎn)程控制,我們使用了ESP8266 Wi-Fi模塊CW32 MCU進(jìn)行通信。通過該模塊,CW32能夠連接到局域網(wǎng)或互聯(lián)網(wǎng),用戶可以通過手機(jī)應(yīng)用發(fā)送控制指令,系統(tǒng)根據(jù)指令進(jìn)行相
    發(fā)表于 12-03 06:06

    cw32 systick怎么用?

    cw32 systick怎么用
    發(fā)表于 12-01 08:10

    使用芯源CW32CW32L012開發(fā)評(píng)估板做了spi屏幕驅(qū)動(dòng)

    CW32生態(tài)社區(qū)以極高的性價(jià)比入手了這塊CW32L012開發(fā)評(píng)估板,開發(fā)板以底板、核心板、1.77寸TFT顯示屏構(gòu)成,所有的IO口都引出了排針,這點(diǎn)好評(píng),使用杜邦線可以非常方便的連接其他模塊。引腳
    的頭像 發(fā)表于 11-21 11:34 ?299次閱讀
    使用芯源<b class='flag-5'>CW32</b>的<b class='flag-5'>CW</b>32L012開發(fā)評(píng)估板做了spi屏幕驅(qū)動(dòng)

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要安裝CW
    發(fā)表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無(wú)線射頻MCU等3個(gè)系列。其中射頻MCU集成了無(wú)線收發(fā)器,主要包括CW32R031(2.4GHz BLE-Lite)系列和CW32W031(Sub-1G)系列。
    發(fā)表于 11-12 07:34

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

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

    用Wi-Fi藍(lán)牙模組Ai-M62-CBS做個(gè)電子沙漏

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

    CW32模塊使用 0.91寸彩屏

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

    5050 RGBW 四合一全彩 LED 燈珠

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

    CW32模塊使用 WS2812彩燈

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

    2.0寸顯示屏,輕薄低功耗12864點(diǎn)陣COG顯示屏

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

    CW32模塊使用 紅外接收模塊

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

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

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