女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

CW32模塊使用 2.8寸與3.2寸ILI9341彩屏

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2025-05-12 15:16 ? 次閱讀

一、模塊來源?

采2
資料下載鏈接:
http://www.lcdwiki.com/zh/2.8inch_SPI_Module_ILI9341_SKU:MSP2807

wKgZPGggaJaAEyZfAAEPH5Oxzbg064.jpg

產品實物展示

二、規格參數?

上方下載鏈接下載資料。

工作電壓:3.3V-5V

工作電流:90mA

模塊尺寸:50.0(H) x 86(V) MM

像素大?。?20(H) x 240(V)RGB

驅動芯片:ILI9341

通信協議:SPI

工作電流:90mA

模塊尺寸:50.0(H) x 86(V) MM

像素大?。?20(H) x 240(V)RGB

驅動芯片:ILI9341

通信協議:SPI

三、移植過程?

我們的目標是將例程移植至立創·CW32F030C8T6開發板上。按照以下步驟,即可完成移植。

將源碼導入工程;

根據編譯報錯處進行粗改;

修改引腳配置;

修改時序配置;

移植驗證。

3.1 查看資料?

打開廠家資料例程(例程下載見例程下載)。具體路徑見下圖。

wKgZO2ggaJeATxTfAASlLn5D4Xs032.jpg

3.2 移植至工程?

將廠家資料路徑下的【LCD】、【SPI】、【TOUCH】文件夾和User文件夾下的GUI.c、GUI.h、test.c和test.h、pic.h,復制到自己的工程中。自己的工程至少需要有毫秒級延時函數。(工程可以參考空白工程下載)

wKgZPGggaJiAY0RzAAtL_CF1zU0057.jpg

wKgZO2ggaJmAE_BAAA5cYnaX388506.jpg

打開自己的工程,將我們剛剛復制過來的文件導入.c和.h文件。

wKgZO2ggaJqAXetNAAA4kiQc5ec335.jpg

分別在touch.h、spi.h、gui.h 和 test.h 文件中定義三個宏,s32、u16與u8。

#include "sys.h" 替換為 #include "board.h"

#include "board.h"

#ifndef u8
#define u8 uint8_t
#endif

#ifndef u16
#define u16 uint16_t
#endif

#ifndef s32
#define s32 uint32_t
#endif

#ifndef u32
#define u32 uint32_t
#endif

將touch.c、lcd.c、GUI.c與test.c文件中的頭文件delay.h 注釋掉?。?/p>

wKgZO2ggaJyAAvw3AAWmkkDeEPY640.jpg

3.3. 引腳選擇?

該屏幕需要設置14個接口,具體接口說明見廠家資料屏幕規格書。 當前廠家源碼使用的是軟件SPI接口,SPI時序部分廠家已經完成,我們只需要將硬件SPI引腳時序和延時配置好即可。所以對應接入的屏幕引腳請按照你的需要。這里選擇的引腳見屏幕接線。

屏幕 開發板
GND GND
--- ---
VCC 3.3V
SCK PA6
SDI PA7
RST PB1
DC PB0
CS PB10
LED PA5
SDO x
T_CLK PA4
T_CS PA3
T_DIN PA2
T_DO PA1
T_IRQ PA0

選擇好引腳后,進入工程開始編寫屏幕引腳初始化代碼。

3.4. 端口修改?

為了方便后續移植,我在lcd.h處宏定義了每一個引腳,后續根據需要進行修改即可。

//-----------------LCD端口移植----------------

#define RCC_LCD1_ENABLE()   __RCC_GPIOA_CLK_ENABLE()
#define RCC_LCD2_ENABLE()   __RCC_GPIOB_CLK_ENABLE()

//SCK
#define PORT_LCD_SCL     CW_GPIOA
#define GPIO_LCD_SCL     GPIO_PIN_6

//MOSI
#define PORT_LCD_SDA     CW_GPIOA
#define GPIO_LCD_SDA     GPIO_PIN_7

////MIS0
//#define PORT_LCD_MIS    GPIOB
//#define GPIO_LCD_MIS    GPIO_PIN_14

//NSS
#define PORT_LCD_CS       CW_GPIOB
#define GPIO_LCD_CS       GPIO_PIN_10

//DC
#define PORT_LCD_DC       CW_GPIOB
#define GPIO_LCD_DC       GPIO_PIN_0

//RES
#define PORT_LCD_RES       CW_GPIOB
#define GPIO_LCD_RES       GPIO_PIN_1

//BLK/LED
#define PORT_LCD_BLK       CW_GPIOA
#define GPIO_LCD_BLK       GPIO_PIN_5

//CS2/T_CS
#define PORT_LCD_CS2       CW_GPIOA
#define GPIO_LCD_CS2       GPIO_PIN_3

 //PEN/T_IRQ
#define PORT_LCD_PEN       CW_GPIOA
#define GPIO_LCD_PEN       GPIO_PIN_0

//T_CLK
#define PORT_LCD_TCLK      CW_GPIOA
#define GPIO_LCD_TCLK      GPIO_PIN_4

//T_DIN
#define PORT_LCD_TDIN      CW_GPIOA
#define GPIO_LCD_TDIN      GPIO_PIN_2

//T_DO
#define PORT_LCD_TD0       CW_GPIOA
#define GPIO_LCD_TD0       GPIO_PIN_1

lcd.c 源代碼中的 void LCD_GPIOInit(void) 修改為如下代碼。

代碼中已經做了引腳SPI的適配,如果沒有修改相關引腳,則將宏定義 USE_HARDWARE_SPI 宏 為1即可。

void LCD_GPIOInit(void)
{
    GPIO_InitTypeDef        GPIO_InitStruct; // GPIO初始化結構體

    RCC_LCD1_ENABLE();        // 使能GPIO時鐘
    RCC_LCD2_ENABLE();        // 使能GPIO時鐘

    GPIO_InitStruct.Pins = GPIO_LCD_SCL|              // GPIO引腳
                           GPIO_LCD_SDA|
                           GPIO_LCD_BLK;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;       // 推挽輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;          // 輸出速度高
    GPIO_Init(PORT_LCD_SCL, &GPIO_InitStruct);        // 初始化

    GPIO_InitStruct.Pins = GPIO_LCD_DC|
                           GPIO_LCD_RES|
                           GPIO_LCD_CS;
    GPIO_Init(PORT_LCD_CS, &GPIO_InitStruct);        // 初始化
}

lcd.h中的LCD端口定義宏,修改為:

////////////////////////////////////////////////////////////////////
//-----------------LCD端口定義----------------

//液晶控制口置1操作語句宏定義
#define        LCD_CS_SET          GPIO_WritePin(PORT_LCD_CS,  GPIO_LCD_CS,  GPIO_Pin_SET)
#define        LCD_RS_SET          GPIO_WritePin(PORT_LCD_DC,  GPIO_LCD_DC,  GPIO_Pin_SET)
#define        LCD_SDA_SET         GPIO_WritePin(PORT_LCD_SDA, GPIO_LCD_SDA, GPIO_Pin_SET)
#define        LCD_SCL_SET         GPIO_WritePin(PORT_LCD_SCL, GPIO_LCD_SCL, GPIO_Pin_SET)
#define        LCD_RST_SET         GPIO_WritePin(PORT_LCD_RES, GPIO_LCD_RES, GPIO_Pin_SET)
#define        LCD_LED_SET         GPIO_WritePin(PORT_LCD_BLK, GPIO_LCD_BLK, GPIO_Pin_SET)

//液晶控制口置0操作語句宏定義
#define        LCD_CS_CLR          GPIO_WritePin(PORT_LCD_CS,  GPIO_LCD_CS,  GPIO_Pin_RESET)//CS
#define        LCD_RS_CLR          GPIO_WritePin(PORT_LCD_DC,  GPIO_LCD_DC,  GPIO_Pin_RESET)//DC
#define        LCD_SDA_CLR         GPIO_WritePin(PORT_LCD_SDA, GPIO_LCD_SDA, GPIO_Pin_RESET)//SDA=MOSI
#define        LCD_SCL_CLR         GPIO_WritePin(PORT_LCD_SCL, GPIO_LCD_SCL, GPIO_Pin_RESET)//SCL=SCLK
#define        LCD_RST_CLR         GPIO_WritePin(PORT_LCD_RES, GPIO_LCD_RES, GPIO_Pin_RESET)//RES
#define        LCD_LED_CLR         GPIO_WritePin(PORT_LCD_BLK, GPIO_LCD_BLK, GPIO_Pin_RESET)

wKgZPGggaJ2AW7UVAA3RLb_L3vI471.jpg

3.5. 驅動修改?

在 SPI.c 文件中,找到void SPIv_WriteData(unsigned char Data) 函數,將其修改如下。

void  SPIv_WriteData(u8 Data)
{
    unsigned char i=0;
    for(i=8;i>0;i--)
    {
        if(Data&0x80)
                LCD_SDA_SET; //輸出數據
        else
                LCD_SDA_CLR;

        LCD_SCL_CLR;
        LCD_SCL_SET;
        Data

wKgZO2ggaJ6AFbC-AARgyKGJRRY213.jpg

在spi.h中,廠家定義了關于SPI接口的宏,這里我們將其注釋,使用我們自己的方式。

wKgZPGggaKCAZ7kJAA7FOqn6fIo051.jpg

打開touch.c 文件 修改以下內容:

修改u8 TP_Init(void);函數

u8 TP_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;

    /* PEN */
    GPIO_InitStructure.Pins  = GPIO_LCD_PEN;
    GPIO_InitStructure.Mode  = GPIO_MODE_INPUT_PULLUP; // 上拉輸入
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(PORT_LCD_PEN, &GPIO_InitStructure);

    /* DOUT*/
    GPIO_InitStructure.Pins  = GPIO_LCD_TD0;
    GPIO_InitStructure.Mode  = GPIO_MODE_INPUT_PULLUP; // 上拉輸入
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(PORT_LCD_TD0, &GPIO_InitStructure);

    /* TDIN*/
    GPIO_InitStructure.Pins  = GPIO_LCD_TDIN;
    GPIO_InitStructure.Mode  = GPIO_MODE_OUTPUT_PP;//推挽輸出模式
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(PORT_LCD_TDIN, &GPIO_InitStructure);

    /* TCLK*/
    GPIO_InitStructure.Pins  = GPIO_LCD_TCLK;
    GPIO_InitStructure.Mode  = GPIO_MODE_OUTPUT_PP;//推挽輸出模式
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(PORT_LCD_TCLK, &GPIO_InitStructure);

    /* TCS*/
    GPIO_InitStructure.Pins  = GPIO_LCD_CS2;
    GPIO_InitStructure.Mode  = GPIO_MODE_OUTPUT_PP;//推挽輸出模式
    GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
    GPIO_Init(PORT_LCD_CS2, &GPIO_InitStructure);

    TP_Read_XY(&tp_dev.x,&tp_dev.y);//第一次讀取初始化
    return 1;
}

注釋掉 void TP_Save_Adjdata(void);和 u8 TP_Get_Adjdata(void);函數。

wKgZO2ggaKSAJUb2AAyXXMeRTIg073.jpg

找到 void TP_Adjust(void) ;函數將函數里面的 TP_Save_Adjdata();和TP_Get_Adjdata();注釋掉。

wKgZPGggaKaAKijRAADY59AosDM122.jpg

我們打開 test.c 文件進行一些修改:找到 void Touch_Test(void); 函數,將里面的一些語句注釋掉,并且將282行括號內的 key==1 改為 1。

wKgZO2ggaKeARdD1AAgyWKEjYaU590.jpg

打開 lcd.c 文件 找到 void LCD_Init(void); 函數將里面的LCD_LED=1;替換成 LCD_LED_SET;

wKgZPGggaKiAPoaPAAKvOFxiXnM953.jpg

打開 touch.h 文件 將里面一部分代碼改為下面的部分:

#define PEN     GPIO_ReadPin(PORT_LCD_PEN,GPIO_LCD_PEN)    //INT
#define DOUT    GPIO_ReadPin(PORT_LCD_TD0,GPIO_LCD_TD0)    //MISO
#define TDIN(x) GPIO_WritePin(PORT_LCD_TDIN,GPIO_LCD_TDIN,x?GPIO_Pin_SET:GPIO_Pin_RESET)    //MOSI
#define TCLK(x) GPIO_WritePin(PORT_LCD_TCLK,GPIO_LCD_TCLK,x?GPIO_Pin_SET:GPIO_Pin_RESET)    //SCLK
#define TCS(x)  GPIO_WritePin(PORT_LCD_CS2, GPIO_LCD_CS2,  x?GPIO_Pin_SET:GPIO_Pin_RESET)   //CS

wKgZO2ggaKmAd59MAAmG0SA5lYE255.jpg

然后我們打開 touch.c 文件 將文件中的下列形式的語句換成后面的語句:

TCLK = 1; -----換成-------> TCLK(1);
TCLK = 0; -----換成-------> TCLK(0);

TDIN = 1; -----換成-------> TDIN(1);
TDIN = 0; -----換成-------> TDIN(0);

TCS = 1; -----換成-------> TCS(1);
TCS = 0; -----換成-------> TCS(0);

例如:

wKgZPGggaKmAewB7AALCsLzFgCc081.jpg

到這里就移植完成了,請移步到第4節進行移植驗證。

四、移植驗證?

在main.c中輸入代碼如下

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

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

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

    LCD_Init();           //液晶屏初始化

    while(1)
    {
        main_test();            //測試主界面
        Test_Color();           //簡單刷屏填充測試
        Test_FillRec();         //GUI矩形繪圖測試
        Test_Circle();          //GUI畫圓測試
        Test_Triangle();        //GUI三角形繪圖測試
        English_Font_test();    //英文字體示例測試
        Chinese_Font_test();    //中文字體示例測試
        Pic_test();             //圖片顯示示例測試
        Rotate_Test();          //旋轉顯示測試

        /* 如果不帶觸摸,或者不需要觸摸功能,請注釋掉下面觸摸屏測試項 */
        Touch_Test();       //觸摸屏手寫測試
    }
}

移植現象:

wKgZO2ggaKqAfYIXAAsvVVanuKI989.jpg

移植成功案例代碼:

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

審核編輯 黃宇

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

    關注

    42

    文章

    2358

    瀏覽量

    118057
  • CW32
    +關注

    關注

    1

    文章

    242

    瀏覽量

    1105
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    2.4TFT彩屏配套測試程序-51單片機

    如題,2.4TFT彩屏配套測試程序-51單片機。
    發表于 06-04 16:26 ?0次下載

    CW32模塊使用 3.5ILI9488彩色觸摸屏

    一、模塊來源 資料下載鏈接: http://www.lcdwiki.com/zh/3.5inch_SPI_Module_ILI9488_SKU:MSP3520 ? 產品實物展示 二、規格參數 工作
    的頭像 發表于 05-12 15:19 ?189次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 3.5<b class='flag-5'>寸</b><b class='flag-5'>ILI</b>9488彩色觸摸屏

    CW32模塊使用】0.96IIC單色屏

    我們的目標是將例程移植至立創·CW32F030C8T6開發板上。按照以下步驟,即可完成移植。 將源碼導入工程; 根據編譯報錯處進行粗改; 修改引腳配置; 修改時序配置; 移植驗證。
    的頭像 發表于 05-11 16:19 ?291次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】0.96<b class='flag-5'>寸</b>IIC單色屏

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

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

    2.8觸摸屏SC05 Plus抽油煙機應用方案,支持WIFI/藍牙

    目前市面上抽油煙機大多還是“斷碼屏+抽油煙機”的搭配,這種搭配就存在傳統斷碼屏顯示內容有限,操作界面不夠直觀,而且觸摸按鍵還經常出現觸控失靈的情況。這種情況能不能得到解決?啟明智顯2.8觸摸串口屏
    的頭像 發表于 04-14 18:03 ?174次閱讀
    <b class='flag-5'>2.8</b><b class='flag-5'>寸</b>觸摸屏SC05 Plus抽油煙機應用方案,支持WIFI/藍牙

    CW32模塊使用】1.47彩屏

    硬件SPI與軟件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的時鐘邊緣采樣,時鐘發生,還有時序控制,都是由硬件完成的。它降低了CPU的使用率,提高了運行速度。軟件SPI就是用代碼控制IO輸出高低電平,模擬SPI的時序,這種方法通信速度較慢,且不可靠。
    的頭像 發表于 03-29 17:30 ?2007次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】1.47<b class='flag-5'>寸</b><b class='flag-5'>彩屏</b>

    CW32模塊使用】0.96SPI單色屏

    硬件SPI與軟件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的時鐘邊緣采樣,時鐘發生,還有時序控制,都是由硬件完成的。它降低了CPU的使用率,提高了運行速度。軟件SPI就是用代碼控制IO輸出高低電平,模擬SPI的時序,這種方法通信速度較慢,且不可靠。
    的頭像 發表于 03-29 17:29 ?1985次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】0.96<b class='flag-5'>寸</b>SPI單色屏

    CW32模塊使用】0.96彩屏

    硬件SPI與軟件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的時鐘邊緣采樣,時鐘發生,還有時序控制,都是由硬件完成的。它降低了CPU的使用率,提高了運行速度。軟件SPI就是用代碼控制IO輸出高低電平,模擬SPI的時序,這種方法通信速度較慢,且不可靠。
    的頭像 發表于 03-29 17:28 ?1947次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】0.96<b class='flag-5'>寸</b><b class='flag-5'>彩屏</b>

    CW32模塊使用】SG90舵機

    我們的目標是將例程移植至CW32F030C8T6開發板上【能夠控制舵機旋轉的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。
    的頭像 發表于 03-29 17:22 ?435次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】SG90舵機

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

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

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

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

    CW32模塊使用 紅外接收模塊

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

    武漢芯源半導體CW32芯片重慶地區線下技術交流會成功舉辦

    2024年10月19日,武漢芯源半導體授權CW32生態社區主辦的“CW32芯片-重慶地區技術交流會”在重慶市科技工作者眾創之家成功舉辦。此次交流會匯聚重慶地區的嵌入式開發工程師和電子信息類企業代表,共同探討CW32芯片在儀器儀表
    的頭像 發表于 10-24 10:55 ?909次閱讀

    樂鑫ESP32-S3方案2.8TFT觸摸彩屏應用于養生壺、茶吧機

    健康生活理念不斷深入人心,多功能養生壺、茶吧機等智能產品成為現代家庭的熱門小家電。為推動智能家居個性化、多樣化發展,啟明智顯推出了基于SC05Plus2.8觸摸彩屏的多功能養生壺、茶吧機的解決方案
    的頭像 發表于 08-03 08:37 ?47次閱讀
    樂鑫ESP32-S3方案<b class='flag-5'>2.8</b><b class='flag-5'>寸</b>TFT觸摸<b class='flag-5'>彩屏</b>應用于養生壺、茶吧機

    請教一下ESP-WROVER-KIT-VB開發板里的3.2屏是什么型號的?

    請教一下 ESP-WROVER-KIT-VB 開發板里的3.2屏是什么型號的?當前屏無法點亮,使用LVGL(littleVGL)屏無法點亮 只有背光有反應
    發表于 06-25 07:00