本人小白一枚...春节前购入奋斗的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:怎么在论坛发帖插入代码啊.....这样没有高亮的看起来不方便呢...
一周热门 更多>