国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

CW32模塊使用 8位數碼管顯示模塊

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2025-05-12 16:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、 模塊來源

?
資料下載鏈接: https://pan.baidu.com/s/15TcV9HevtfVBWcm7pgRNTw
資料提取碼:e1q5

wKgZPGggY2uAC2RwAAKzvEMLdbs551.jpg


產品實物展示

二、規格參數?

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

通信協議:單總線

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

以上信息見廠家資料文件

三、移植過程?

我們的目標是將例程移植至CW32F030C8T6開發板上。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。

3.1. 查看資料?

3.1.1. 時序講解?

wKgZO2ggY2uASyTNAAErLW5wGls642.jpg

無論數據輸入或輸出CS端必須為低電平。然后數據在CS端的上升沿被載入數據寄存器或控制寄存器。CS端在第 16個時鐘的上升沿之后,下個時鐘上升沿之前變為高電平,否則數據將會丟失。

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

3.1.2. 數據位講解?

DIN傳輸的16位數據包說明,見表格000。其中D8-D11 為寄存器地址位。D0-D7 為數據位。D12-D15 為無效位。

wKgZPGggY2uABf0eAADavDrm-PY316.jpg

根據以上的時序說明和傳輸格式,實現的數據傳輸代碼。

//向MAX7219寫入字節
//dat寫入的數據
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
        //當前數據位是否為1
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

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

3.1.3. 關鍵寄存器講解?

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

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

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

wKgZPGggY26AMe9YAAD9kH7m84Q861.jpg

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

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

在全部數碼管都進行譯碼的情況下,如果想要第0個數碼管顯示數字3,第1個數碼管不顯示應如何操作?

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

先在數據手冊中找到關于第0個數碼管和第1個數碼管的寄存器地址。根據右圖顯示得知,第0個數碼管的地址是0X01;第1個數碼管的地址是0X02。知道地址后,根據數據手冊提示找到數據位設置表,因為全部數碼管都進行了譯碼,那么只需要發送:

//高8位=0x01(寄存器地址), 低8位=0x03(數據)
Write_Max7219(0x01,0x03);//第0個數碼管顯示數字3
//高8位=0x02(寄存器地址), 低8位=0x0F(數據)
Write_Max7219(0x02,0x0F);//第1個數碼管b不顯示
wKgZO2ggY26AUwSxAAF18qiv2wY379.jpg

3.2. 引腳選擇?

該模塊有10個引腳,其中有5個是接入下一個級聯的數碼管。如果不接入下一個級聯的數碼管,則只要接5個引腳,具體引腳連接見各引腳連接

wKgZPGggY3SAK5_fAAYC0xZ4xGo029.jpg

模塊接線圖

3.3. 移植至工程?

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

wKgZO2ggY3SAJewMAAA5JignCx8085.jpg

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

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


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

    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);       // 初始化

}

/******************************************************************
 * 函 數 名 稱:Write_Max7219_byte
 * 函 數 說 明:向MAX7219寫入字節
 * 函 數 形 參:dat寫入的數據
 * 函 數 返 回:無
 * 作       者: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_max7219.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#ifndef _BSP_MAX7219_H_
#define _BSP_MAX7219_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(uint8_t address,uint8_t dat);
void Write_Max7219_AllOff(void);
void MAX7219_Init(void);

#endi

4. 移植驗證?

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

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

int32_t main(void)
{
    board_init();        // 開發板初始化

    uart1_init(115200);        // 串口1波特率115200

    int i =0;

    MAX7219_Init();
    delay_ms(1000);

    Write_Max7219(0x0f, 0x00);       //顯示測試:1;測試結束,正常顯示:0

    Write_Max7219_AllOff();//數碼管全滅
    printf("MAX7219 demo startrn");
    while(1)
    {
        //第一個顯示1,第二個顯示2,第三個顯示3...
        for( i = 1; i < 9; i++ )//從1顯示到8
        {
            Write_Max7219(i, i);
            delay_ms(1000);
        }
    }
}

上電效果:

wKgZPGggY3SAIOfLAAOGlD7MTJk807.jpg

模塊移植成功案例代碼:

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

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數碼管
    +關注

    關注

    32

    文章

    1894

    瀏覽量

    94142
  • CW32
    +關注

    關注

    1

    文章

    299

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問CW32芯片有哪些功能模塊

    CW32芯片有哪些功能模塊
    發表于 12-26 08:11

    【EASY EAI Nano-TB(RV1126B)開發板試用】+串行數碼管顯示驅動

    在開發板上,為用戶預留了3個GPIO引腳以便測試和使用,見圖1所示。 圖1預留的GPIO資源 這3個GPIO引腳的位置見圖2所示,用它可驅動串行數碼管顯示模塊來實現顯示功能。 圖2 引
    發表于 12-24 19:03

    請問CW32系列微控制器是否有擴展模塊或外設板卡可供選擇?

    CW32系列微控制器是否有擴展模塊或外設板卡可供選擇?
    發表于 12-16 07:24

    CW32單片機如何讓生活更便捷

    較大,且有LCD顯示、低功耗要求的應用場合。這種廣泛的適用性使得CW32單片機在各種產品中都有出色的表現,比如智能馬桶、燃氣表、水表、LED調光板、電子顯微鏡、可燃氣體報警器、料開關、溫控器
    發表于 12-11 06:11

    CW32單片機在智能馬桶的應用

    1.溫度感應與控制 智能馬桶內設有溫度傳感器,通過CW32單片機的處理,可以實時感知到用戶所需的座圈溫度并根據用戶的設定進行調節。當溫度過高或過低時,單片機將發出信號,通過控制模塊對座圈的加熱或制冷
    發表于 12-04 08:01

    CW32 MCU溫度監測應用

    監測環境溫度,并通過串口將數據發送到PC端進行顯示。 硬件連接 CW32 MCU LM35溫度傳感器 USB轉串口模塊 代碼實現 #include \"cw32f030.h\&qu
    發表于 12-03 08:03

    第5章 定時器與數碼管基礎(5.3)

    5-2所示。 圖5-2 數碼管原理圖 這是比較常見的數碼管的原理圖,Kingst51開發板子上一共有6個數碼管。前邊有了LED小燈的學習,數碼管學習就會輕松的多了。從圖5-3可以看出,
    的頭像 發表于 12-02 15:57 ?694次閱讀
    第5章 定時器與<b class='flag-5'>數碼管</b>基礎(5.3)

    【瑞薩RA6E2】ADC數據采集與數碼管顯示

    模擬信號處理和顯示控制方面的強大能力。 一、硬件設計與連接 1.1 硬件組件 主控板 :瑞薩RA6E2評估板 顯示模塊8(啟用4
    發表于 11-27 00:52

    使用芯源CW32CW32L012開發評估板做了spi屏幕驅動

    CW32生態社區以極高的性價比入手了這塊CW32L012開發評估板,開發板以底板、核心板、1.77寸TFT顯示屏構成,所有的IO口都引出了排針,這點好評,使用杜邦線可以非常方便的連接其他模塊
    的頭像 發表于 11-21 11:34 ?612次閱讀
    使用芯源<b class='flag-5'>CW32</b>的<b class='flag-5'>CW</b>32L012開發評估板做了spi屏幕驅動

    原廠 FZH114C  一款LED(發光二極數碼管、點陣屏)驅動控制專用芯片

    :驅動6位數碼管,每位數碼管7段(a-g)。8段×5:驅動5位數碼管,每位數碼管
    發表于 11-19 14:43

    FZH114  LED(發光二極數碼管、點陣屏)驅動控制專用芯片,集成數字通訊電路、 解碼電路、數據鎖存器、震蕩器

    信號對應GR引腳。 8段×5模式:連接5位數碼管,支持額外的段信號(如小數點DP)。 總結FZH114是一款功能豐富、易于集成的LED驅動芯片,適用于需要多位數碼管或LED點陣
    發表于 11-19 11:13

    級聯動態掃描顯示數碼管問題

    GD32F103C8T6 硬件SPI連接移位寄存器74HC595級聯,動態掃描顯示位數碼管 是否需要電平轉換芯片TXB0104 數碼管選擇共陰極和共陽極區別是什么 若使用TXB010
    發表于 10-07 20:36

    CW32模塊使用 0.91寸彩屏

    工作電流: 最大16mA 模塊尺寸: 12(H) x 38(V) MM 像素大小: 128(H) x 32(V) 驅動芯片: SSD1306 通信協議: IIC 三、移植過程 我們的目標是將例程移植至立創·CW32F030C8T6開發板上。按照以下步驟,
    的頭像 發表于 07-01 15:20 ?744次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 0.91寸彩屏

    CW32模塊使用 1.3寸單色OLED顯示

    0.21(V) 驅動芯片: SH1106 通信協議: SPI(可調IIC) 三、移植過程 我們的目標是將例程移植至立創·CW32F030C8T6開發板上。按照以下步驟,即可完成移植。 將源碼導入工程; 根據編譯報錯處進行粗改;
    的頭像 發表于 07-01 14:57 ?648次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 1.3寸單色OLED<b class='flag-5'>顯示</b>屏

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

    四合一點陣顯示模塊采用MAX7219作為控制,它是一種集成化的串行輸入/輸出共陰極顯示驅動器,它連接微處理器與8位數字的7段數字LED
    的頭像 發表于 05-12 16:04 ?993次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 MAX7219四合一點陣<b class='flag-5'>模塊</b>