在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

利用MultiTimer進(jìn)行ILI9341 TFT屏驅(qū)動移植

冬至子 ? 來源:兆易創(chuàng)新GD32 MCU ? 作者:小虎 ? 2022-10-11 15:27 ? 次閱讀

1.多任務(wù)運行說明

此次測試是在之前MultiTimer的基礎(chǔ)上增加ILI9341 TFT屏驅(qū)動,并同時運行led燈閃+串口打印+TFT屏顯示三個任務(wù),看起來像是同時運行的,實際上是利用了MultiTimer的功能進(jìn)行時間片輪詢操作。

2.TFT屏驅(qū)動移植

TFT屏驅(qū)動采用GDF310的硬件SPI,IO口接法如下;由于都是數(shù)據(jù)往屏幕寫,沒有涉及返回的數(shù)據(jù),實際上PA6<--SPI0_MISO可以不接;另外就是注意PA5只連到了JP2的中間腳,如果接線到JP7或者JP8上的PA5,需要在JP2上街跳線帽;我的線是接到JP8的PA5腳的,因此用跳線帽將JP2的PA5與Dx相連;

PA5 SPI0_SCK
PA6 SPI0_MISO
PA7 SPI0_MOSI
PB5 LCD_CS
PB4 LCD_RST
PB3 LCD_D/C

驅(qū)動代碼我參考了GD32F150R的SPI_TFT_LCD_Driver,運氣比較好,拿過來小改了一下就可以跑了;以下是屏幕測試代碼,

void tft_test_func(void)
{
    switch(tft_test.state)
    {
        case 0:
            num_test2(); 
            break;

        case 1:
            font_test2_1();
            break;

        case 2:
            font_test2_2();
            break;

        case 3:
            color_test2(BLUE,YELLOW,"Yellow");
            break;     
        case 4:
            color_test2(BLACK,WHITE,"White");            
            break;

        case 5:
            color_test2(WHITE,BLACK,"Black");            
            break;

        case 6:
            color_test2(WHITE,RED,"Red");            
            break;

        case 7:
            color_test2(BLUE,GREEN,"Green");            
            break;

        case 8:
            color_test2(YELLOW,BLUE,"Blue");            
            break;
        
        case 9:
            draw_test2();
            break;

        default:
            break;
    }

    tft_test.state++;
    if(tft_test.state >= 10)
    {
        tft_test.state = 0;
    }        
}

3.主函數(shù)部分

總共創(chuàng)建了4個任務(wù),全部由MultiTimerYield()進(jìn)行調(diào)度運行,主程序部分代碼如下,可以看到液晶屏顯示的任務(wù)是放到exampleTimer1Callback()中運行了,定時周期為2s。

#include 
#include "gd32f3x0.h"
#include "gd32f310k_start.h"
#include "systick.h"
#include "MultiTimer.h"
#include "app.h"
#include "hal_uart.h"
#include "tft_test.h"
#include "lcd_driver.h"


MultiTimer timer1;
MultiTimer timer2;
MultiTimer timer3;
MultiTimer timer4;

void exampleTimer1Callback(MultiTimer* timer, void *userData)
{
    printf("exampleTimer1Callback-> %s.rn", (char*)userData);
    MultiTimerStart(timer, 2000, exampleTimer1Callback, userData);
    // gpio_bit_toggle(GPIOA, GPIO_PIN_8);
    tft_test_func();
}

void exampleTimer2Callback(MultiTimer* timer, void *userData)
{
    printf("exampleTimer2Callback-> %s.rn", (char*)userData);
}

void exampleTimer3Callback(MultiTimer* timer, void *userData)
{
    printf("exampleTimer3Callback-> %s.rn", (char*)userData);
    MultiTimerStart(timer, 4567, exampleTimer3Callback, userData);
}

void exampleTimer4Callback(MultiTimer* timer, void *userData)
{
    MultiTimerStart(timer, 500, exampleTimer4Callback, userData);
    gpio_bit_toggle(GPIOA, GPIO_PIN_8);
}

/*!
    brief      main function
    param[in]  none
    param[out] none
    retval     none
*/
int main(void)
{  
    systick_config();
    /* enable the LED GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOA);
    rcu_periph_clock_enable(RCU_GPIOB);
    /* configure led GPIO port */ 
    gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_8);
    gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8);
    
    gpio_bit_reset(GPIOA, GPIO_PIN_8);
    
     /* initilize the com */
    usart0_gpio_config();
    usart0_config();
    
    /* initialize lcd */
    lcd_init();

    MultiTimerInstall(PlatformTicksGetFunc);

    MultiTimerStart(&timer1, 2000, exampleTimer1Callback, "2000ms CYCLE timer");
    MultiTimerStart(&timer2, 5000, exampleTimer2Callback, "5000ms ONCE timer");
    MultiTimerStart(&timer3, 3456, exampleTimer3Callback, "3456ms delay start, 4567ms CYCLE timer");
    MultiTimerStart(&timer4, 1000, exampleTimer4Callback, "500ms CYCLE timer");
    
    while(1){
       MultiTimerYield();
    }
}

審核編輯:劉清

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

    關(guān)注

    17

    文章

    1721

    瀏覽量

    92017
  • TFT
    TFT
    +關(guān)注

    關(guān)注

    10

    文章

    386

    瀏覽量

    111272
  • ILI9341
    +關(guān)注

    關(guān)注

    3

    文章

    32

    瀏覽量

    27029
收藏 人收藏

    評論

    相關(guān)推薦

    STM32 ILI9341驅(qū)動TFTLCD(二)

    ILI9341集成了240x320x18位圖形類型靜態(tài)RAM,也可稱為顯存。
    發(fā)表于 07-27 14:38 ?2034次閱讀
    STM32 <b class='flag-5'>ILI9341</b><b class='flag-5'>驅(qū)動</b>TFTLCD<b class='flag-5'>屏</b>(二)

    使用ILI9341驅(qū)動如何實現(xiàn)曲線刷新顯示?

    如題,大家在STM32F0驅(qū)動ILI93412.2寸,SPI接口繪制曲線時,一般都用什么方法來刷新顯示,使曲線左移或右移而比較流暢顯示,具了解ILI9341沒有直接控制移
    發(fā)表于 05-16 06:00

    ili9341

    誰有ili9341的中文資料,和單片機(jī)接口。有這方面的原代碼??
    發(fā)表于 04-11 21:00

    MSP430F1611用16BIT方式驅(qū)動ili9341芯片液晶

    這個工程msp430f1611上,用ili9341芯片驅(qū)動LCD成功,至于IC型號:ILI9341/ILI9325/RM68021/ILI9
    發(fā)表于 03-20 04:16

    如何利用stm32F4驅(qū)動攝像頭在ILI9341顯示上顯示畫面

    如何利用stm32F4驅(qū)動攝像頭在ILI9341顯示上顯示畫面?
    發(fā)表于 10-11 09:25

    ESP32驅(qū)動3.2寸ILI9341顯示+XPT2046觸摸的方法

    ESP32的主板ESPDUINO-32如下:用如下的:顯示驅(qū)動TFT_eSPI,這個顯示的速度比adafruit ILI9341快10倍。一、配置
    發(fā)表于 12-10 07:42

    ILI9341 for TFT

    ILI9341 for TFT
    發(fā)表于 12-02 10:45 ?60次下載
    <b class='flag-5'>ILI9341</b> for <b class='flag-5'>TFT</b>

    WK28043 2.8寸ILI9341 TFT LCD尺寸圖免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是WK28043 2.8寸ILI9341 TFT LCD尺寸圖免費下載。
    發(fā)表于 01-08 08:00 ?15次下載
    WK28043 2.8寸<b class='flag-5'>ILI9341</b> <b class='flag-5'>TFT</b> LCD尺寸圖免費下載

    ILI9341 TFTLCD顯示的單片機(jī)驅(qū)動程序應(yīng)用說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是ILI9341 TFTLCD顯示的單片機(jī)驅(qū)動程序應(yīng)用說明。
    發(fā)表于 01-14 09:54 ?125次下載
    <b class='flag-5'>ILI9341</b> TFTLCD顯示<b class='flag-5'>屏</b>的單片機(jī)<b class='flag-5'>驅(qū)動</b>程序應(yīng)用說明

    TFT液晶顯示器的單片SOC驅(qū)動器芯片ILI9341的數(shù)據(jù)手冊免費下載

    ILI9341是一款用于a-TFT液晶顯示器的262144色單片SOC驅(qū)動器,分辨率為240RGBx320點,包括720通道源驅(qū)動器、320通道門驅(qū)
    發(fā)表于 04-29 08:00 ?31次下載
    <b class='flag-5'>TFT</b>液晶顯示器的單片SOC<b class='flag-5'>驅(qū)動</b>器芯片<b class='flag-5'>ILI9341</b>的數(shù)據(jù)手冊免費下載

    ILI9341的使用之【二】ILI9341介紹

    的a-TFT LCD 的262144色單片驅(qū)動器。這個單片驅(qū)動器包含了一個720通道的源極驅(qū)動器(source driver),一個320通道的柵極
    發(fā)表于 11-23 16:21 ?47次下載
    <b class='flag-5'>ILI9341</b>的使用之【二】<b class='flag-5'>ILI9341</b>介紹

    ILI9341的使用之【一】TFT-LCD原理(轉(zhuǎn)載)

    近期開始研究手上的LCD的使用。該LCD使用了ILI9341的IC做為驅(qū)動。因此邊研究邊留下記錄。與上一個時鐘系列類似,想必這又是一個大工程,因為
    發(fā)表于 11-24 14:51 ?59次下載
    <b class='flag-5'>ILI9341</b>的使用之【一】<b class='flag-5'>TFT</b>-LCD原理(轉(zhuǎn)載)

    ILI9341的使用之【三】ILI9341系統(tǒng)通信接口模式操作詳解

    ILI9341系列目錄:《ILI9341的使用之【一】TFT-LCD原理(轉(zhuǎn)載)》《ILI9341的使用之【二】ILI9341介紹》MCU系
    發(fā)表于 12-08 12:36 ?48次下載
    <b class='flag-5'>ILI9341</b>的使用之【三】<b class='flag-5'>ILI9341</b>系統(tǒng)通信接口模式操作詳解

    SPI:在ILI9341 TFT LCD上顯示PM2.5濃度

    電子發(fā)燒友網(wǎng)站提供《SPI:在ILI9341 TFT LCD上顯示PM2.5濃度.zip》資料免費下載
    發(fā)表于 10-31 11:05 ?3次下載
    SPI:在<b class='flag-5'>ILI9341</b> <b class='flag-5'>TFT</b> LCD上顯示PM2.5濃度

    STM32 ILI9341驅(qū)動TFTLCD(三)

    上次已經(jīng)常用的指令封裝成函數(shù),今天通過調(diào)用這些函數(shù)在屏幕上顯示圖片,讓大家進(jìn)一步了解ILI9341
    發(fā)表于 07-27 14:41 ?1352次閱讀
    STM32 <b class='flag-5'>ILI9341</b><b class='flag-5'>驅(qū)動</b>TFTLCD<b class='flag-5'>屏</b>(三)
    主站蜘蛛池模板: 亚洲日本视频在线观看 | 欧美另类图片亚洲偷 | 国产精品午夜国产小视频 | 国产亚洲3p一区二区三区 | 日本黄色三级视频 | 天天天天天天天操 | 91亚洲免费视频 | 亚洲影院手机版777点击进入影院 | 97影院午夜在线观看视频 | 日本a级三级三级三级久久 日本a级影院 | 性做久久久久久久免费看 | 欧美ggg| 日本一区不卡视频 | 性欧美黑人 | 天天摸天天摸天天躁 | 欧美色图俺去了 | 久久99久久精品国产只有 | 三级三级三级网站网址 | 亚洲国产欧美在线成人aaaa | 日韩欧美不卡片 | 手机看片1024国产基地 | 午夜视频网站 | 美女视频网站色软件免费视频 | 欧美性白人极品1819hd高清 | 色噜噜噜噜噜在线观看网站 | 国产香蕉在线精彩视频 | 午夜看片网 | 夜色资源站www国产在线观看 | 免费人成黄页在线观看1024 | 三级五月天| 天天射久久 | 色一乱一伦一区一直爽 | 一级毛片ab片高清毛片 | 午夜日本一区二区三区 | 午夜国产在线 | 最新版资源在线天堂 | 视频免费观看网址 | 午夜影院免费观看视频 | 精品国产污网站在线观看15 | 国产色综合天天综合网 | 色老头在线官方网站 |