欧美日韩欧美,女人和拘做受大片免费看,麻花豆传媒剧国产mv免费版特色,欧美成人精品高清在线观看,麻豆产精国品一二三产区区

【E969】STM32F429IIT6+STemwin+SDRAM+LTDC

2021-09-09 21:45:11      索煒達電子      919     

最近做了一個STM32F429IIT6(176PIN)的板子。

移植了STemwin GUI.折騰了我一個星期。總算完成。

LCD : 3.5寸的TFT屏

驅(qū)動 :MCU自動的LTDC(888模式),也就是24位。

GUI  :STemwin 5.22

環(huán)境 :IAR 7.10

移植花了1兩天。移植上去以后發(fā)現(xiàn)問題多多。老是跳到硬件錯誤。運行DEMO,跑不了2個界面就卡主。

一直在找問題。修修補補。今天終于弄好。

1. 幀緩存用的是SDRAM。視頻緩存如果也用SDRAM的話,很容易就卡住。不如內(nèi)部RAM跑的歡暢。不過顯示效果要好的多。因為緩存大嘛。

2. 設置的堆棧如果過小就很容易出現(xiàn)硬件錯誤。默認是 STACK = 0x400 BYTE HEAP = 0x200。要改大點。

    我主要就是卡在這邊。設置成 STACK = 0x2000 BYTE HEAP = 0xe00。跑所有DEMO幾乎沒問題,除了一個SPEEDOMETER。

3. 關于層的問題。因為默認是1層的。如果要改為2層的。特別注意要先選定層1。要不然什么都不顯示。

   GUI_SelectLayer(1); 根據(jù)DATASHEET.層2是在最上面的。它的尺寸如果和屏幕一樣的。那層1和背景都會被它覆蓋。這里說的是LTDC的層。

   所以要選擇層2繪制。(GUI里面 0- 層1 ,1- 層2)。

4. 關于觸摸的問題。我看了正點原子和別人寫的。都挺好。不過我還是自己根據(jù)我軟件的架構寫了一個。

    采用5ms定期采集,根據(jù)PEN中斷。

    沒有采用這幾個函數(shù)。因為我覺得不太透明。

    void GUI_TOUCH_X_ActivateX(void);

    void GUI_TOUCH_X_ActivateY(void);

    int  GUI_TOUCH_X_MeasureX (void);

    int  GUI_TOUCH_X_MeasureY (void);

    采用的是這個函數(shù)。

    static GUI_PID_STATE TpState;

    GUI_TOUCH_StoreStateEx(&TpState);

    這是記錄最終坐標和觸摸狀態(tài)的結(jié)構體。原型如下:

    typedef struct {

    int x,y;   //當前坐標

    U8  ressed;//觸摸狀態(tài)

    U8  Layer;//層

    } GUI_PID_STATE;

    有觸摸時,把左邊和狀態(tài)存入這個結(jié)構體。沒有觸摸時,坐標為-1。

    經(jīng)過這么處理后,就很容易有單點觸摸和拖拽功能。

TAGSTM32F429IIT6
  • 4 次
  • 1 分