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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

一、模塊來源


資料下載鏈接:
http://www.lcdwiki.com/zh/3.5inch_SPI_Module_ILI9488_SKU:MSP3520

wKgZPGggZg2Ac0SBAAEgiGyZ_nU829.jpg

產(chǎn)品實物展示

二、規(guī)格參數(shù)

工作電壓:3.3V
工作電流:20MA
模塊尺寸:56.34(H) x 98.00(W)
像素大小:320(H) x 480(V)RGB
驅(qū)動芯片:ILI9488
通信協(xié)議:SPI
使用管腳數(shù)量:14 Pin(2.54mm間距排針

wKgZO2ggZg6AB0TQAACvMpz_vKE155.jpg

尺寸參數(shù)

三、移植過程

我們的目標(biāo)是將例程移植至立創(chuàng)·CW32F030C8T6開發(fā)板上。按照以下步驟,即可完成移植。

將源碼導(dǎo)入工程;

根據(jù)編譯報錯處進(jìn)行粗改;

修改引腳配置;

修改時序配置;

移植驗證。

3.1 查看資料

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

wKgZPGggZg6AbPq6AAZ08Z79_fQ480.jpg

3.2 移植至工程

將廠家資料路徑下的關(guān)于LCD底層的代碼,復(fù)制到自己的工程中。一共有兩次復(fù)制。并且自己的工程至少需要有微秒級延時函數(shù)。(工程可以參考入門手冊工程模板)

wKgZO2ggZg6AW4DoAAfGbUbBxaY165.jpg

復(fù)制文件夾1

wKgZPGggZg-ANslfAAzchEj4Yyg869.jpg

復(fù)制文件夾2

打開自己的工程,將我們剛剛復(fù)制過來的文件導(dǎo)入.c和.h文件。

wKgZO2ggZg-AG_BgAAA3dZ-Pn7Q556.jpg

分別在lcd.h、touch.h 和 spi.h文件中定義三個宏,u32、u16與u

#include "board.h" #ifndef u8 #define u8 uint8_t #endif #ifndef u16 #define u16 uint16_t #endif #ifndef u32 #define u32 uint32_t #endif

wKgZPGggZhKAMOMvAAVFIUcsxjo280.jpg

test.c、lcd.c、touch.c和GUI.c文件中的頭文件delay.h 注釋掉

wKgZO2ggZhKAf7tpAAh9OmwF6vI425.jpg

wKgZPGggZhOAB0znAAeZCe1fhM8770.jpg

3.3 引腳選擇

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

屏幕 開發(fā)板
GND GND
VCC 3.3V
SCK PA6
SDI PA7
RST PB1
RS PB0
CS PB10
LED PA5
SDO 不接
T_CLK PA4
T_CS PA3
T_DIN PA2
T_DO PA1
T_IRQ PA0

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

3.4. 端口修改

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

//-----------------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

wKgZO2ggZhSAPR0zAAGskhzI_6k782.jpg

軟件SPI引腳宏

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

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

void LCD_GPIOInit(void) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體 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)

wKgZPGggZhWAb65bAA3RLb_L3vI429.jpg

3.5. 驅(qū)動修改

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

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

wKgZO2ggZhWAfuLCAARgyKGJRRY578.jpg

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

wKgZPGggZhaASP8oAA7FOqn6fIo438.jpg

打開touch.c 文件 修改以下內(nèi)容:

修改u8TP_Init(void);函數(shù)

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);函數(shù).

wKgZO2ggZhiALGBDAAyXXMeRTIg127.jpg

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

wKgZPGggZhmAPEnoAADY59AosDM317.jpg

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

wKgZO2ggZhyAL-vCAAgyWKEjYaU673.jpg

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

wKgZPGggZh2AYY_iAAOe2hXlH6s392.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

wKgZO2ggZh2ASCiWAAmG0SA5lYE670.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);

例如:

wKgZPGggZh6AJ-_oAALCsLzFgCc268.jpg

到這里就移植完成了,請移步到4節(jié)進(jìn)行移植驗證。

四、移植驗證

在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" #include "spi.h" #include "touch.h" int32_t main(void) { board_init(); // 開發(fā)板初始化 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(); //旋轉(zhuǎn)顯示測試 //如果不帶觸摸,或者不需要觸摸功能,請注釋掉下面觸摸屏測試項 Touch_Test(); //觸摸屏手寫測試 } }

上電效果:

wKgZO2ggZh6AIr-JAAdApOaIGS0429.jpg

模塊移植成功案例(軟件SPI):

鏈接:https://pan.baidu.com/s/1fVFssmnIdNbN4F0ZdxpwlQ?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)注

    42

    文章

    2460

    瀏覽量

    121968
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    299

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    請問CW32中的CW是啥意思?

    CW32中的CW是啥意思?
    發(fā)表于 02-02 07:10

    CW32仿真器是什么?

    CW32仿真器是什么
    發(fā)表于 01-05 08:04

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

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

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

    監(jiān)測環(huán)境溫度,并通過串口將數(shù)據(jù)發(fā)送到PC端進(jìn)行顯示。 硬件連接 CW32 MCU LM35溫度傳感器 USB轉(zhuǎn)串口模塊 代碼實現(xiàn) #include \"cw32f030.h\"
    發(fā)表于 12-03 08:03

    cw32 systick怎么用?

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

    OBOO鷗柏丨110英國產(chǎn)化麒麟系統(tǒng)觸摸屏人才市場信息查詢

    OBOO鷗柏100英臥式國產(chǎn)化麒麟系統(tǒng)觸摸屏在人才市場招聘查詢的應(yīng)用優(yōu)勢在當(dāng)今數(shù)字化的人才市場,高效準(zhǔn)確的招聘查詢設(shè)備至關(guān)重要。OBOO鷗柏(OBOO鷗柏)推出的110臥式國產(chǎn)化麒麟系統(tǒng)
    的頭像 發(fā)表于 11-28 18:40 ?369次閱讀
    OBOO鷗柏丨110英<b class='flag-5'>寸</b>大<b class='flag-5'>屏</b>國產(chǎn)化麒麟系統(tǒng)<b class='flag-5'>觸摸屏</b>人才市場信息查詢

    OBOO鷗柏丨65立體式國產(chǎn)化KylinOS麒麟系統(tǒng)觸摸屏別墅智能一體機展示智能

    麒麟系統(tǒng)觸摸屏一體機,為別墅等高端住宅提供了智能化展示解決方案。產(chǎn)品特點與優(yōu)勢國產(chǎn)化信創(chuàng)[OBOO鷗柏]的65立式觸摸屏采用了國產(chǎn)化的麒麟系統(tǒng)(KylinOS)
    的頭像 發(fā)表于 11-27 16:04 ?742次閱讀
    OBOO鷗柏丨65<b class='flag-5'>寸</b>立體式國產(chǎn)化KylinOS麒麟系統(tǒng)<b class='flag-5'>觸摸屏</b>別墅智能一體機展示智能

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

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

    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

    工業(yè)智能網(wǎng)關(guān):PLC觸摸屏數(shù)據(jù)采集場景覆蓋指南

    針對"能否采集PLC觸摸屏數(shù)據(jù)"問題,本文通過功能模塊化拆解,結(jié)合真實應(yīng)用場景,解析工業(yè)智能網(wǎng)關(guān)在PLC觸摸屏數(shù)據(jù)采集中的技術(shù)實現(xiàn)與商業(yè)價值。
    的頭像 發(fā)表于 07-16 10:36 ?1252次閱讀
    工業(yè)智能網(wǎng)關(guān):PLC<b class='flag-5'>觸摸屏</b>數(shù)據(jù)采集場景覆蓋指南

    CW32模塊使用 1.28LCD彩色顯示屏

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

    昆侖通態(tài)物聯(lián)網(wǎng)觸摸屏配置教程

    昆侖通態(tài)物聯(lián)網(wǎng)觸摸屏配置教程
    發(fā)表于 06-09 14:59 ?0次下載

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

    (2.54mm間距排針) 帶電阻觸摸芯片 :XPT2046 以上信息見廠家資料文件 文件路徑 尺寸參數(shù) 三、移植過程 我們的目標(biāo)是將例程移植至立創(chuàng)·CW32F030C8T6開發(fā)板上。按照以下步驟,即可完成移植。 將源碼導(dǎo)入工程
    的頭像 發(fā)表于 05-11 16:14 ?1361次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】1.8<b class='flag-5'>寸</b><b class='flag-5'>彩色</b><b class='flag-5'>觸摸屏</b>

    觸摸屏的防水方案該如何選擇?#觸摸屏 #工作原理大揭秘 #人工智能

    觸摸屏
    jf_95705721
    發(fā)布于 :2025年04月14日 13:59:29

    Model3A 7觸摸屏PLC應(yīng)用解決方案:LVGL拖拽式UI便捷設(shè)計

    觸摸屏是不少工程師關(guān)注的焦點,本期我們?yōu)榇蠹医榻BModel3A芯片方案7觸摸屏在PLC控制中的優(yōu)秀方案。Model3A7觸摸屏與PLC
    的頭像 發(fā)表于 04-10 18:05 ?1073次閱讀
    Model3A 7<b class='flag-5'>寸</b><b class='flag-5'>觸摸屏</b>PLC應(yīng)用解決方案:LVGL拖拽式UI便捷設(shè)計