stm32控制tft液晶屏问题

2019-07-14 18:13发布

本人小白一枚...春节前购入奋斗的STM32开发板一枚...还有一块4.3寸的TFT屏幕...兴奋之余做点小东西玩.....
芯片是stm32f103ve系列的...

以下是问题描述

我想在tft液晶上显示多行字...

于是写了一个小的demo
int main(void)
{
  unsigned short a;
  RCC_Configuration();                 //系统时钟初始化及端口外设时钟使能
  GPIO_Configuration();                           //状态LED1的初始化
  tp_Config();                                           //SPI1 触摸电路初始化            
  FSMC_LCD_Init();                                   //FSMC TFT接口初始化
  LCD_Init();                                           //LCD初始化代码
  TFT_CLEAR(0,0,480,272);          //清屏        
  if (SysTick_Config(720))                   //时钟节拍中断时10us一次  用于定时
  {
    /* Capture error */
    while (1);
  }  



for(i=0;i13:30这个字符串显示19行的时候,就发生了这种情况





<span style="font-family: 微软雅黑; font-size: 14px; text-align: -webkit-auto; ">但是我把iBIGMAX_CHAR_POSX){x=0;y+=24;}//每个高24

        if(y>BIGMAX_CHAR_POSY){y=x=0;TFT_CLEAR(0,0,480,272);}
        TFT_ShowBigChar(262-x,y,*p,color);
        x+=14; //每个宽14
        p++;
    }  
}

void TFT_ShowBigChar(u16 x,u16 y,u8 num,u16 color)
{      
        #define BIGMAX_CHAR_POSX 466
        #define BIGMAX_CHAR_POSY 266
    u8 temp;
    u8 pos,t,hang,pos3,flag;      
    if(x>BIGMAX_CHAR_POSX||y>BIGMAX_CHAR_POSY)return;
    //设定一个字符所占的窗口大小
        flag=0;
        
        hang=0;
        pos3=0;
        num=num-' ';                                                //得到偏移后的值
        for(pos=0;pos>8);                                    //起始地址Y
        LCD_WR_Data(y);                                       
        LCD_WR_Data(y>>8);                                    //结束地址Y
        LCD_WR_Data(y);                                    
        LCD_WR_REG(0x2c);
        LCD_WR_Data(color);                    
}



是不是内存不足?该怎么解决呢?用什么方法?


我百度了下是不是用dma模块来解决呢?做个乒乓双缓冲什么的?不过显示屏的双缓冲怎么做啊?我是小白....恳求赐教....




ps:怎么在论坛发帖插入代码啊.....这样没有高亮的看起来不方便呢...

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。