OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7536|回复: 8

TFT驱动求援了

[复制链接]

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
发表于 2012-9-14 22:21:54 | 显示全部楼层 |阅读模式

SSD1963的驱动程序,参考了很多人的程序设计,结果还是悲剧中。。。。
无奈,晒出来,出出丑,看出其中问题的,给个提示哦。
MUC和TFT之间是用排线连接的P34,长度越20cm。
再搞不出来,兄弟就只能去钓鱼岛,舍生成仁,报效党国!



 



unsigned int  HDP=799;
unsigned int  HT=850;
unsigned int  HPS=43;
unsigned int  LPS=8;
unsigned char HPW=10;

unsigned int  VDP=479;
unsigned int  VT=530;
unsigned int  VPS=12;
unsigned int  FPS=4;
unsigned char VPW=10;


//TFTLCD里面颜色的定义  
#define RED   0XF800
#define GREEN 0X07E0
#define BLUE  0X001F 
#define BRED  0XF81F
#define GRED  0XFFE0
#define GBLUE 0X07FF

#define WHITE 0Xffff //白色
//#define WHITE  0Xffe0//白色

#define BLACK 0X0000 //黑色
#define BROWN 0XBC40 //棕色
#define BRRED 0XFC07 //棕红色
#define GRAY  0X8430 //灰色
#define LGRAY 0XC618 //浅灰色

#define Bank1_LCD_D    ((uint32_t)0x64000080)    //显示区数据地址  
#define Bank1_LCD_C    ((uint32_t)0x64000000)    //显示区指令地址
/* Private variables ---------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/
void LCD_WR_REG(unsigned int index)
{
 *(__IO uint16_t *) (Bank1_LCD_C)= index; 

}

//写寄存器数据函数
//输入:dbw 数据位数,1为16位,0为8位。
void LCD_WR_CMD(unsigned int index,unsigned int val)

 *(__IO uint16_t *) (Bank1_LCD_C)= index; 
 *(__IO uint16_t *) (Bank1_LCD_D)= val;
}

//读显示地址数据
unsigned int LCD_RD_data(void){
 unsigned int a=0;
 a=*(__IO uint16_t *) (Bank1_LCD_D);   //空操作
 a=*(__IO uint16_t *) (Bank1_LCD_D);   //读出的实际16位像素数据  
 return(a); 
}

//写16位像素数据函数
void    LCD_WR_Data(unsigned int val)
{  
 *(__IO uint16_t *) (Bank1_LCD_D)= val;  
}

void delay_time(unsigned int i)
{
    unsigned int a;
    unsigned int b;
    for(b=0;b<i;b++)
    for(a=0;a<1000;a++);
}

/*******************************************************************************
* Function Name  : LCD_CtrlLinesConfig
* Description    : Configures LCD Control lines (FSMC Pins) in alternate function
                   Push-Pull mode.
* Input          : None
* Output         : None
* Return         : None
* Attention   : None
*******************************************************************************/
static void LCD_CtrlLinesConfig(void)
{
 
 /*-- GPIOs Configuration -----------------------------------------------------*/
/*
 +-------------------+--------------------+------------------+------------------+
 +                       SRAM pins assignment                                   +
 +-------------------+--------------------+------------------+------------------+
 | PD0  <-> FSMC_D2  | PE0  <-> FSMC_NBL0 | PF0  <-> FSMC_A0 | PG0 <-> FSMC_A10 |
 | PD1  <-> FSMC_D3  | PE1  <-> FSMC_NBL1 | PF1  <-> FSMC_A1 | PG1 <-> FSMC_A11 |
 | PD4  <-> FSMC_NOE | PE3  <-> FSMC_A19  | PF2  <-> FSMC_A2 | PG2 <-> FSMC_A12 |
 | PD5  <-> FSMC_NWE | PE4  <-> FSMC_A20  | PF3  <-> FSMC_A3 | PG3 <-> FSMC_A13 |
 | PD8  <-> FSMC_D13 | PE7  <-> FSMC_D4   | PF4  <-> FSMC_A4 | PG4 <-> FSMC_A14 |
 | PD9  <-> FSMC_D14 | PE8  <-> FSMC_D5   | PF5  <-> FSMC_A5 | PG5 <-> FSMC_A15 |
 | PD10 <-> FSMC_D15 | PE9  <-> FSMC_D6   | PF12 <-> FSMC_A6 | PG9 <-> FSMC_NE2 |
 | PD11 <-> FSMC_A16 | PE10 <-> FSMC_D7   | PF13 <-> FSMC_A7 |------------------+
 | PD12 <-> FSMC_A17 | PE11 <-> FSMC_D8   | PF14 <-> FSMC_A8 |
 | PD13 <-> FSMC_A18 | PE12 <-> FSMC_D9   | PF15 <-> FSMC_A9 |
 | PD14 <-> FSMC_D0  | PE13 <-> FSMC_D10  |------------------+
 | PD15 <-> FSMC_D1  | PE14 <-> FSMC_D11  |
 |                   | PE15 <-> FSMC_D12  |
 +-------------------+--------------------+
*/
 GPIO_InitTypeDef GPIO_InitStructure;
 
 /* Enable GPIOs clock */
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOG, ENABLE);
 
 /* Enable FSMC clock */
 RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
 /*-- GPIOs Configuration ------------------------------------------------------*/
 /*
 +-------------------+--------------------+------------------+------------------+
 +                       SRAM pins assignment                                   +

 +-------------------+--------------------+
 */
 /* GPIOD configuration */
  /* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.07(NE1) , PD.08(D13), PD.09(D14),
  PD.10(D15), PD.11(A16), PD.12(A17), PD13(A18) PD.14(D0), PD.15(D1) as alternate function push pull */
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource7, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FSMC);
 
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |
                              GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
                      GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
 
 GPIO_Init(GPIOD, &GPIO_InitStructure);
 
 /* Set PE.00(NBL0), PE.01(NBL1), PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
  PE.14(D11), PE.15(D12) as alternate function push pull */ 
 /* GPIOE configuration */
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource0 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource1 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource9 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource10 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource11 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource12 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource13 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource14 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource15 , GPIO_AF_FSMC);
 
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1  |
                GPIO_Pin_7 | GPIO_Pin_8  | GPIO_Pin_9  | GPIO_Pin_10 |
                              GPIO_Pin_11| GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
 
 GPIO_Init(GPIOE, &GPIO_InitStructure);
 
 /* Set PF.00(A0), PF.01(A1), PF.02(A2), PF.03(A3, PF.04(A4), PF.05(A5), PF.12(A6), PF.13(A7), PF.14(A8),
  PF.15(A9), as alternate function push pull */ 
 /* GPIOE configuration */
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource0 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource1 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource2 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource3 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource4 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource5 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource12 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource13 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource14 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOF, GPIO_PinSource15 , GPIO_AF_FSMC);
 
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1  | GPIO_Pin_2  | GPIO_Pin_3 | GPIO_Pin_4 |
                              GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
 
 GPIO_Init(GPIOF, &GPIO_InitStructure);
 
 
 /* Set PG.00(A10), PG.01(A11), PG.02(A12), PG.03(A13), PG.04(A14), PG.05(A15), PF.09(NE2), as alternate function push pull */ 
 /* GPIOE configuration */
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource0 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource1 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource2 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource3 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource4 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource5 , GPIO_AF_FSMC);
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource9 , GPIO_AF_FSMC);

 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1  | GPIO_Pin_2  | GPIO_Pin_3 | GPIO_Pin_4 |
                              GPIO_Pin_5 | GPIO_Pin_9 ;
 
 GPIO_Init(GPIOG, &GPIO_InitStructure);
 
 /* Configure PC8 in output pushpull mode */
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
  
 GPIO_SetBits(GPIOC,GPIO_Pin_8);

}

/*******************************************************************************
* Function Name  : LCD_FSMCConfig
* Description    : Configures the Parallel interface (FSMC) for LCD(Parallel mode)
* Input          : None
* Output         : None
* Return         : None
* Attention   : None
*******************************************************************************/
static void LCD_FSMCConfig(void)
{
 FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
 FSMC_NORSRAMTimingInitTypeDef p;
 
 /* FSMC写速度设置 */
 p.FSMC_AddressSetupTime = 3;
  p.FSMC_AddressHoldTime = 0;
  p.FSMC_DataSetupTime = 6;
  p.FSMC_BusTurnAroundDuration = 1;
  p.FSMC_CLKDivision = 0;
  p.FSMC_DataLatency = 0;
  p.FSMC_AccessMode = FSMC_AccessMode_A;

  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_PSRAM;
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; 
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
   
 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
 /* Enable FSMC Bank4_SRAM Bank */
 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM2, ENABLE); 
 
 
}

/*******************************************************************************
* Function Name  : LCD_Configuration
* Description    : Configure the LCD Control pins and FSMC Parallel interface
* Input          : None
* Output         : None
* Return         : None
* Attention   : None
*******************************************************************************/
static void LCD_Configuration(void)
{
 /* Configure the LCD Control pins --------------------------------------------*/
 LCD_CtrlLinesConfig();
 delay_time(100);
 /* Configure the FSMC Parallel interface -------------------------------------*/
 LCD_FSMCConfig();
 delay_time(100);
 
}

/*******************************************************************************
* Function Name  : delay_ms
* Description    : Delay Time
* Input          : - cnt: Delay Time
* Output         : None
* Return         : None
* Return         : None
* Attention   : None
*******************************************************************************/
void delay_ms(uint16_t ms)   
{
 uint16_t i,j;
 for( i = 0; i < ms; i++ )
 {
  for( j = 0; j < 1141; j++ );
 }
}

 


/*******************************************************************************
* Function Name  : LCD_Initializtion
* Description    : SSD1963 Resets
* Input          : None
* Output         : None
* Return         : None
* Attention   : None
*******************************************************************************/

void LCD_Initializtion(void)
{
 LCD_Configuration();
 
 GPIO_ResetBits(GPIOC,GPIO_Pin_8);
  delay_ms(10);
 GPIO_SetBits(GPIOC,GPIO_Pin_8);

 LCD_WR_REG(0x00E2);       //PLL multiplier, set PLL clock to 120M
 LCD_WR_Data(0x0023);     //N=0x36 for 6.5M, 0x23 for 10M crystal
 LCD_WR_Data(0x0002);
 LCD_WR_Data(0x0004);
 
 LCD_WR_REG(0x00E0);  // PLL enable
 delay_time(100);
 LCD_WR_Data(0x0001);
 delay_time(10);
 LCD_WR_REG(0x00E0);
 LCD_WR_Data(0x0003);
 delay_time(5);
 
 LCD_WR_REG(0x0001);  // software reset
 delay_time(5);

 LCD_WR_REG(0x00E6); //PLL setting for PCLK, depends on resolution
 LCD_WR_Data(0x0001);
 LCD_WR_Data(0x0048);
 LCD_WR_Data(0x009e);

 LCD_WR_REG(0x003A);
 LCD_WR_Data(0x0005);   

 LCD_WR_REG(0x00B0); //Set LCD Mode
 LCD_WR_Data((HT>>8)&0X00FF);  //Set HT
 LCD_WR_Data(HT&0X00FF);
 LCD_WR_Data((HPS>>8)&0X00FF);  //Set HPS
 LCD_WR_Data(HPS&0X00FF);
 LCD_WR_Data(HPW);      //Set HPW
 LCD_WR_Data((LPS>>8)&0X00FF);  //Set HPS
 LCD_WR_Data(LPS&0X00FF);
 LCD_WR_Data(0x0000);
 

 LCD_WR_REG(0x00B4); //HSYNC
 LCD_WR_Data((HT>>8)&0X00FF);  //Set HT
 LCD_WR_Data(HT&0X00FF);
 LCD_WR_Data((HPS>>8)&0X00FF);  //Set HPS
 LCD_WR_Data(HPS&0X00FF);
 LCD_WR_Data(HPW);      //Set HPW
 LCD_WR_Data((LPS>>8)&0X00FF);  //Set HPS
 LCD_WR_Data(LPS&0X00FF);
 LCD_WR_Data(0x0000);

 LCD_WR_REG(0x00B6); //VSYNC
 LCD_WR_Data((VT>>8)&0X00FF);   //Set VT
 LCD_WR_Data(VT&0X00FF);
 LCD_WR_Data((VPS>>8)&0X00FF);  //Set VPS
 LCD_WR_Data(VPS&0X00FF);
 LCD_WR_Data(VPW);      //Set VPW
 LCD_WR_Data((FPS>>8)&0X00FF);  //Set FPS
 LCD_WR_Data(FPS&0X00FF);
 
 LCD_WR_REG(0x00F0); //pixel data interface
 LCD_WR_Data(0x0003);
 delay_time(5);

 LCD_Clear(0x00ff);
 

 LCD_WR_REG(0x0029); //display on

 LCD_WR_REG(0x00BE); //set PWM for B/L
 LCD_WR_Data(0x0006);
 //LCD_WR_Data(0x0008);
 LCD_WR_Data(0x0080);
 //LCD_WR_Data(0x00f0);
 
 LCD_WR_Data(0x0001);
 LCD_WR_Data(0x00f0);
 LCD_WR_Data(0x0000);
 LCD_WR_Data(0x0000);

 LCD_WR_REG(0x00d0);//设置动态背光控制配置
 LCD_WR_Data(0x000d);
}

/*******************************************************************************
* Function Name  : LCD_Clear
* Description    :
* Input          : - Color: Screen Color
* Output         : None
* Return         : None
* Attention   : None
*******************************************************************************/
void LCD_Clear(uint16_t Color)
{

 
    unsigned int l=800,w;

 LCD_WR_REG(0x002A); 
 LCD_WR_Data(0);    
 LCD_WR_Data(0);
 LCD_WR_Data(HDP>>8);    
 LCD_WR_Data(HDP&0x00ff);
  LCD_WR_REG(0x002b); 
 LCD_WR_Data(0);    
 LCD_WR_Data(0);
 LCD_WR_Data(VDP>>8);    
 LCD_WR_Data(VDP&0x00ff);
 LCD_WR_REG(0x002c);
 while(l--)
 {
   for(w=0;w<480;w++)
  {   
   LCD_WR_Data(Color);
  }
 }
}

STM32F4+SSD1963.SchDoc

358 KB, 下载次数: 228

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
 楼主| 发表于 2012-9-14 23:51:57 | 显示全部楼层
原因找到了
(1)程序Copy错了,ctrl+C 配合 ctrl+V实在不靠谱。
(2)2个屏幕,只有一个是好的。RP这么低,买2个有一个是不行的。必须找卖家算账。

总结,干活不能急躁,还是DataSheet比较靠谱。
后果,郁闷了接近2周。
回复 支持 反对

使用道具 举报

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
 楼主| 发表于 2012-9-14 23:53:00 | 显示全部楼层
回复【2楼】maninman1981:
---------------------------------
今晚可以睡个踏实觉了。
不然这么个简单玩意搞了这么久,说出去还真是“丢不起这人”。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-15 00:12:02 | 显示全部楼层
呵呵
回复 支持 反对

使用道具 举报

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
 楼主| 发表于 2012-9-16 18:59:52 | 显示全部楼层
 原子兄,如果TFT LCD 刷屏是可以,但是画点有问题。这个毛病会是哪里出了错!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-16 21:21:48 | 显示全部楼层
回复【5楼】maninman1981:
---------------------------------
坐标设置函数可能有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

148

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2012-7-25
在线时间
0 小时
 楼主| 发表于 2012-9-16 22:51:08 | 显示全部楼层

  想自杀,刷屏的程序用了
  void LCD_Clear(uint16_t Color)
{

  uint16_t i;
 
 LCD_WR_REG(0x002A); 
 LCD_WR_DATA(0);    
 LCD_WR_DATA(0);
 LCD_WR_DATA((LCD_XMAX>>8)&0X00FF);    
 LCD_WR_DATA(LCD_XMAX&0X00FF);
  LCD_WR_REG(0x002b); 
 LCD_WR_DATA(0);    
 LCD_WR_DATA(0);
 LCD_WR_DATA((LCD_YMAX>>8)&0X00FF); 
 LCD_WR_DATA(LCD_YMAX&0X00FF);
 LCD_WR_REG(0x002c);

 for(i=0;i<384000;i++)
 {   
  LCD_WR_DATA(Color);
 }
}


   uint16_t i =》  uint32_t i;

原来是这里搞死了,苍天啊。


 

 

  

回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2012-9-17 11:15:28 | 显示全部楼层
呵呵,楼主当吃个惨痛 教训吧,内存溢出了,哎,前2个月也是 搞串口那 u8 超 255了,也搞死我了,整了个2天
1-1
回复 支持 反对

使用道具 举报

69

主题

336

帖子

0

精华

高级会员

Rank: 4

积分
632
金钱
632
注册时间
2013-12-11
在线时间
0 小时
发表于 2014-2-15 19:57:54 | 显示全部楼层
回复【2楼】maninman1981:
---------------------------------
你上面的程序是正确的吗?可以发一个正确的程序吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 20:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表