|
楼主 |
发表于 2013-11-9 19:13:22
|
显示全部楼层
用在AT070TN83正常,现在又用在stm32f407板上了。自己做的板。
void Init_RA875(void)
{
lcd_rst();
WriteCommand(0x88); //SYS_CLK = FIN*(PLLDIVN[4:0] +1)/((PLLDIVM+1)*(2^PLLDIVK[2:0])); SYS_CLK=25MHz*(7+1)/(1*(2^3)=25MHz.
WriteData(0x07); //PLLDIVN[4:0] = 20 FIN = 25MHz PLLDIVM =0 0x10
delay_ms(1);
WriteCommand(0x89);
WriteData(0x03); //PLLDIVK[2:0] =2
delay_ms(10);
WriteCommand(0x10); //SYSR u8[4:3]=00 256 color u8[2:1]= 00 8u8 MPU interface
WriteData(0x0F); // if 8u8 MCU interface and 65k color display----- 0x0c
delay_ms(1);
WriteCommand(0x04); //PCLK inverse
WriteData(0x81);
delay_ms(1);
//Horizontal set
WriteCommand(0x14); //HDWR//Horizontal Display Width Setting Bit[6:0]
WriteData(0x63);//Horizontal display width(pixels) = (HDWR + 1)*8
WriteCommand(0x15);//Horizontal Non-Display Period Fine Tuning Option Register (HNDFTR)
WriteData(0x00);//Horizontal Non-Display Period Fine Tuning(HNDFT) [3:0]
WriteCommand(0x16); //HNDR//Horizontal Non-Display Period Bit[4:0]
WriteData(0x03);//Horizontal Non-Display Period (pixels) = (HNDR + 1)*8
WriteCommand(0x17); //HSTR//HSYNC Start Position[4:0]
WriteData(0x03);//HSYNC Start Position(PCLK) = (HSTR + 1)*8
WriteCommand(0x18); //HPWR//HSYNC Polarity ,The period width of HSYNC.
WriteData(0x0B);//HSYNC Width [4:0] HSYNC Pulse width(PCLK) = (HPWR + 1)*8
delay_ms(1);
//Vertical set
WriteCommand(0x19); //VDHR0 //Vertical Display Height Bit [7:0]
WriteData(0xdf);//Vertical pixels = VDHR + 1
WriteCommand(0x1a); //VDHR1 //Vertical Display Height Bit [8]
WriteData(0x01);//Vertical pixels = VDHR + 1
WriteCommand(0x1b); //VNDR0 //Vertical Non-Display Period Bit [7:0]
WriteData(0x1f);//Vertical Non-Display area = (VNDR + 1)
WriteCommand(0x1c); //VNDR1 //Vertical Non-Display Period Bit [8]
WriteData(0x00);//Vertical Non-Display area = (VNDR + 1)
WriteCommand(0x1d); //VSTR0 //VSYNC Start Position[7:0]
WriteData(0x16);//VSYNC Start Position(PCLK) = (VSTR + 1)
WriteCommand(0x1e); //VSTR1 //VSYNC Start Position[8]
WriteData(0x00);//VSYNC Start Position(PCLK) = (VSTR + 1)
WriteCommand(0x1f); //VPWR //VSYNC Polarity ,VSYNC Pulse Width[6:0]
WriteData(0x01);//VSYNC Pulse Width(PCLK) = (VPWR + 1)
delay_ms(1);
//Active window set
//setting active window X
WriteCommand(0x30); //Horizontal Start Point 0 of Active Window (HSAW0)
WriteData(0x00); //Horizontal Start Point of Active Window [7:0]
WriteCommand(0x31); //Horizontal Start Point 1 of Active Window (HSAW1)
WriteData(0x00); //Horizontal Start Point of Active Window [9:8]
WriteCommand(0x34); //Horizontal End Point 0 of Active Window (HEAW0)
WriteData(0x1F); //Horizontal End Point of Active Window [7:0]
WriteCommand(0x35); //Horizontal End Point 1 of Active Window (HEAW1)
WriteData(0x03); //Horizontal End Point of Active Window [9:8]
delay_ms(1);
//setting active window Y
WriteCommand(0x32); //Vertical Start Point 0 of Active Window (VSAW0)
WriteData(0x00); //Vertical Start Point of Active Window [7:0]
WriteCommand(0x33); //Vertical Start Point 1 of Active Window (VSAW1)
WriteData(0x00); //Vertical Start Point of Active Window [8]
WriteCommand(0x36); //Vertical End Point of Active Window 0 (VEAW0)
WriteData(0xdf); //Vertical End Point of Active Window [7:0]
WriteCommand(0x37); //Vertical End Point of Active Window 1 (VEAW1)
WriteData(0x01); //Vertical End Point of Active Window [8]
delay_ms(1);
WriteCommand(0x70); //set TP sample time & ADC clock
WriteData(0xB2);//ADC取样为4096个系统周期,可唤醒,系统频率的1/4。
TP_auto_mode(); //enable auto mode
Touch_Panel_Interrupt_Enable(); // 开启触控面板中断。
Enable_TP(); // 启用触控面板
RA8875_WAITSTATUS();
clear_TP_interrupt();
Active_Window(0,799,0,479); //设定面板分辨率为800*480 pixel
HDIR_SEGn_SEG0(); //让屏幕显示颠倒90度
Clear_Active_Window();
Text_Background_Color(WHITE);
//Font_with_BackgroundTransparency();
Memory_Clear();
Display_ON();
// LcdClear(WHITE);//清屏
//设置背光
PWM1_enable();
PWM1_fnuction_sel();
PWM1_clock_ratio(0xFF);//2MHz PWM1
PWM1_duty_cycle(0x7E);
PWM2_disable_level_low();
PWM2_fnuction_sel();
PWM2_clock_ratio(0x09);//2MHz PWM1
PWM2_duty_cycle(0x7E);
//设置数字光标
Text_Cursor_Horizontal_Size(24);
Text_Cursor_Vertical_Size(4);
Text_Blink_Time(0x35);
Text_Cursor_Blink_Enable();
Text_Cursor_Disable();
MemoryWrite_Cursor_autoIncrease();//写光标加1,才和数据显示有关
}
我发现用RA8875的一个好处,fatfs不用936,用437,也就是英文长文件各,同样也显示中文文件名。无意之中发现的。
|
|