嵌入式技术论坛
直播中

王娟

7年用户 464经验值
私信 关注
[经验]

将TFT液晶屏驱动移植到MM32F5270开发板上的步骤

对MM32的初步感受:

第一次使用mm32,因为有mindsdk,配置完环境后,直接上手体验了几个demo,感觉mm32和stm32差别不大,上手体验很好,本次移植tft屏幕驱动,没费什么力气,一次成功。后续会在了解了解mm32替换stm32。

由于屏幕驱动中需要用到延时函数,而我没在MindSDK中找到systick相关的工程,正好看到有大佬移植完成了systick,所以直接用了。

有了延时函数后,离移植成功只需要两步了。

1.更改端口定义的GPIO高低电平的写入函数
2.更改gpio口初始化

//-----------------OLED端口定义---------------- 

#define OLED_SCLK_Clr() GPIO_WriteBit(GPIOA,GPIO_PIN_0,0u)
#define OLED_SCLK_Set() GPIO_WriteBit(GPIOA,GPIO_PIN_0,1u)


#define OLED_SDIN_Clr() GPIO_WriteBit(GPIOA,GPIO_PIN_1,0u)//DIN
#define OLED_SDIN_Set() GPIO_WriteBit(GPIOA,GPIO_PIN_1,1u)


#define OLED_RST_Clr() GPIO_WriteBit(GPIOA,GPIO_PIN_2,0u)//RES
#define OLED_RST_Set() GPIO_WriteBit(GPIOA,GPIO_PIN_2,1u)


#define OLED_DC_Clr() GPIO_WriteBit(GPIOA,GPIO_PIN_3,0u)//DC
#define OLED_DC_Set() GPIO_WriteBit(GPIOA,GPIO_PIN_3,1u)

              
#define OLED_CS_Clr()  GPIO_WriteBit(GPIOA,GPIO_PIN_4,0u)//CS
#define OLED_CS_Set()  GPIO_WriteBit(GPIOA,GPIO_PIN_4,1u)

              
#define OLED_BLK_Clr()  GPIO_WriteBit(GPIOA,GPIO_PIN_5,0u)//BLK
#define OLED_BLK_Set()  GPIO_WriteBit(GPIOA,GPIO_PIN_5,1u)
//GPIO初始化
    GPIO_Init_Type  GPIO_InitStructure;
    RCC_EnableAHB1Periphs(RCC_AHB1_PERIPH_GPIOA, true);
    GPIO_InitStructure.Pins  = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
    GPIO_InitStructure.PinMode  = GPIO_PinMode_Out_PushPull;
    GPIO_InitStructure.Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    
//    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
    GPIO_WriteBit(GPIOA,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5,1u);
//主函数
int main(void)
{
    BOARD_Init();

    printf("\r\n lcd example.\r\n");


    LCD_ShowOneChinese(10,0,"极",RED);
    LCD_ShowOneChinese(42,0,"术",RED);
    LCD_ShowOneChinese(74,0,"社",RED);
    LCD_ShowOneChinese(106,0,"区",RED);
    LCD_ShowString(10,40,"MM32",RED);
    while (1)
    {
        ;
    }
}

完成后用杜邦线屏幕和开发板,烧录程序。一次成功。

原作者:灵动MM32 MCU 家星

更多回帖

发帖
×
20
完善资料,
赚取积分