版權(quán)聲明:本日志所載內(nèi)容的版權(quán)為本人所擁有,僅供學(xué)習(xí)目的,切勿用于商業(yè)用途。未經(jīng)本人同意,不可轉(zhuǎn)載或拷貝及復(fù)制用于任何目的之用途。
嘔心瀝血兩個(gè)星期,終于成功調(diào)試完成Cortex-M3 驅(qū)動(dòng)16 * 02 LCD程序。
void LCD_init(void)
//LCD初始化
{
LCD_PortConfig();
LCD_BLC_ON();
Delay_Ms(500);
LCD_write_command(0x38);
Delay_Us(50);
LCD_write_command(0x39);
Delay_Us(50);
LCD_write_command(0x14);
Delay_Us(50);
LCD_write_command(0x78);
Delay_Us(50);
LCD_write_command(0x5e);
Delay_Us(50);
LCD_write_command(0x6f);
Delay_Us(50);
LCD_write_command(0x0f);
Delay_Us(50);
LCD_write_command(0x01);
Delay_Us(50);
LCD_write_command(0x06);
Delay_Us(50);
LCD_write_command(0x01);
Delay_Ms(10);
}
static void LCD_WriteDataByte( unsigned char uData )
{
unsigned long sSysclock;
unsigned char i;
sSysclock = SysCtlClockGet() / (1000000 * 3);
for( i = 0; i < 8; i++ )
{
// GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, LCDSCL );
if( uData & 0x80 )
{
GPIOPinWrite( GPIO_PORTB_BASE, LCDSDA, LCDSDA );
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, 0 );
}
else
{
GPIOPinWrite( GPIO_PORTB_BASE, LCDSDA, 0 );
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, 0 );
}
// 左移數(shù)據(jù),剛好又可以做延時(shí).
uData <<= 1;
SysCtlDelay(sSysclock);
// SysCtlDelay(sSysclock);
GPIOPinWrite( GPIO_PORTB_BASE, LCDSCL, LCDSCL );
}
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,0);
}
void LCD_write_command(unsigned char command) //寫(xiě)指令
{
unsigned long sSysclock;
sSysclock = SysCtlClockGet() / (1000000 * 3);
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,LCDCSn);
SysCtlDelay(sSysclock);
GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,0);
GPIOPinWrite( GPIO_PORTF_BASE,LCDRSn,0);
LCD_WriteDataByte( command );
// GPIOPinWrite(GPIO_PORTD_BASE,LCDCSn,LCDCSn);
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |