اطلاعیه

Collapse
No announcement yet.

مشکل در راه اندازی TFT LCD 3.2 inch Wide سایت ECA با درایور HX8352 و کتابخانه HAL

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در راه اندازی TFT LCD 3.2 inch Wide سایت ECA با درایور HX8352 و کتابخانه HAL

    سلام خدمت همه دوستان
    من خیلی وقته در تلاشم که TFT LCD 3.2 inch Wide موجود در سایت که البته فعلا ناموجود هست را بر روی برد توسعه خود ECA (stm32f103zet6) راه اندازی کنم.

    اگر به لینک بالا مراجعه کنید نمونه کد برای راه اندازی LCD با استفاده از FSMC موجود هست که کار میکند. ولی در تلاشی که داشتم با کتابخانه HAL راه اندازی ش کنم توفیقی حاصل نشد.
    طبق چیزی که از FSMC متوجه شدم برای توشتن در LCD بسته به بانک SRAM که انتخاب میکنیم (در اینجا بانک 4 و NE4) در دو آدرس حافظه برای ارسال داده و دستور مینویسیم و بقیه سیگنالینگ توسط FSMC انجام می شود.
    کد:
    [LEFT]void LCD_WR_REG(uint16_t regval)
    { 
        LCD->LCD_REG=regval;
    }
    
    
    void LCD_WR_DATA(uint16_t data)
    {                                                   
        LCD->LCD_RAM=data;         
    }[/LEFT]
    توابع نوشتن داده و دستور به شکل بالا هستند که تعریف LCD_RAM و LCD_REG به صورت زیر هستند.

    کد:
    [LEFT]typedef struct
    {
        uint16_t LCD_REG;
        uint16_t LCD_RAM;
    } LCD_TypeDef;
    
    
    #define LCD_BASE        ((uint32_t)(0x6C000000 | 0x000007FE))
    #define LCD             ((LCD_TypeDef *) LCD_BASE)
     [/LEFT]
    این تعاریف با نمونه کتابخانه هایی که دیدم نمیخونه و اصلا متوجه نمیشم که دو حافظه برای نوشتن دستور و دیتا چطور از هم تفکیک میشن.

    به صورت مثال در فایل درایور ssd1963 که در زیر لینکشو دادم به شکل زیر هست.


    کد:
    [LEFT]void Lcd_Write_Cmd(uint16_t Cmd)
    {
       *(uint16_t *) (LCD_REG) = Cmd;
    }
    ////////////////////////
    void Lcd_Write_Data(uint16_t data)
    {
       *(uint16_t *) (LCD_DATA)= data;
    }[/LEFT]
    که آدرس دیتا و دستور به قرار زیر هستن.
    کد:
    [LEFT]// Adress for data
    #define LCD_DATA 0x60020000
    // Adress for command
    #define LCD_REG 0x60000000[/LEFT]

    من فایل کتابخانه LCD خودم (HX8352) و یک کتابخانه نمونه (SSD1963) رو میذارم که دومی با HAL نوشته شده. همچنین (main.c، fsmc.c و lcd.c ) خودم رو هم قرار میدم. ممنون میشم اگر کسی اطلاعاتی داره کمک کنه. چون من کم نگشتم هم تو انجمن و هم تو نت برای این درایور با fsmc و hal کتابخونه ای پیدا نکردم. ممنون . میخواستم کل پروژه رو بذارم حجمش خیلی بالا بود. فایل CUBE رو هم گذاشتم ،
    جدیدترین ویرایش توسط yasser1993; ۱۱:۲۴ ۱۳۹۹/۰۱/۲۹.
لطفا صبر کنید...
X