大家學習經常使用S3C2410/S3C2440,通常是燒寫簡單的程序到NandFlash中(一般小於4K),並且開機運行。
我嘗試開機後初始化UART,但是開始一直輸出亂碼。
上電以後,晶振是12MHz,爲了調試,我沒有啓動PLL,意味着主頻一直以12MHz運行,所以PCKL也是12MHz。
使用公式:
UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1
波特率是115200,計算出來結果( 12000000/(115200*16) - 1 = 6
很不幸,試着輸入字符,但是亂碼
後來降低波特率爲19200,UBRDIV=38
嘿嘿,這能正常輸出了。
爲什麼要降低波特率?我還需要研究研究。
初始化UART的代碼爲:
void init_uart_c()
{
GPHCON = 0xA0;
GPHUP = 0x0C;
ULCON0 = 3;
UCON0 = 0x0005;
UFCON0 = 0x00;
UMCON0 = 0x00;
UBRDIV0 = 38;
}