我是个新上手的菜鸟,买了原子哥的开发板,现在在做一个摄像头显示实验,对LCD_WriteRAM(lcd_wdata);
函数还不甚了解,求指导,万分感谢。下面是我胡乱改的程序:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "lcd.h"
//#include "key.h"
//#include "touch.h"
#include "exti.h"
//#include "spi.h"
//#include "mmc_sd.h"
//#include "FAT.h"
//#include "Show_pic.h"
#include "Sensor.h"
#include "fifo.h"
#include "sccb.h"
//TFTLCD显示 实验
int main(void)
{
u16 lcd_wdata; //写到tft像素的数据
u16 i,j;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
//KEY_Init();
LCD_Init();
EXTIX_Init();
//Touch_Init();
Sensor_init();
delay_ms(10);
// LCD_Clear(BLUE);
// delay_ms(50);
//DrawString(100,140,"科 技", YELLOW, RED,NORMAL);
// TRANSP 不带背景色
// NORMAL 带背景色
// while(SD_Init()!=0)//检测不到SD卡
// {
printf("sd卡初始化失败! ");
// }
// printf("sd卡初始化成功! ");
// FAT32_Init();
// Show_Pic("/电子/图片/鲜花/30.BMP");
//*/
while(1)
{
/* if(GetTouch==1)
// {
// Touch_GetAdXY(&Buff_x,&Buff_y);
////DispOneColor(30, 180, 80, 32, RED);
/ //DispOneColor(130, 180, 80, 32, RED);
// DispNum(38,188,Buff_x);
// DispNum(138,188,Buff_y);
// printf(" TOUCH X:%d ",Buff_x);
// printf(" TOUCH Y:%d\n",Buff_y);
// GetTouch=0;
// } */
if(FIFO_flag==2) //数据接收完成标志
{
LCD_WriteReg(0x0050,0x0000); //水平GRAM起始位置
LCD_WriteReg(0x0051,0x00ef); //水平GRAM终止位置
LCD_WriteReg(0x0052,0x0000); //垂直GRAM起始位置
LCD_WriteReg(0x0053,0x013f); //垂直GRAM终止位置
//LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
FIFO_RRST=0; //读FIFO复位
FIFO_RCLK=0;
FIFO_RCLK=1;
FIFO_RCLK=0;
FIFO_RRST=1;
FIFO_RCLK=1;
for(i=0;i<240;i++)
{
for(j=0;j<320;j++) //写到tft数据是16位
{
FIFO_RCLK=0;
lcd_wdata=FIFO_DATA&0xff00; //读高8位
FIFO_RCLK=1;
FIFO_RCLK=0;
lcd_wdata|=(FIFO_DATA>>8)&0x00ff; //读低8位
FIFO_RCLK=1;
// LCD_WriteRAM(c_data);//写RGB数据到TFT GRAM
LCD_WriteRAM(lcd_wdata);
}
}
FIFO_flag=0;
}
}
}
|