Cortex A-8裸機串列埠通訊程式
阿新 • • 發佈:2019-01-06
main.c:實現串列埠簡單的傳送的功能
#include "s5pc100.h"
int main()
{
UART0.ULCON0 = 0x03;
UART0.UCON0 = 0x05;
UART0.UFCON0 = 0;
UART0.UMCON0 = 0;
UART0.UBRDIV0 = 35;
UART0.UDIVSLOT0 = 0x888;
UART0.UINTM0 = 0xF;
while (1) {
while (!(UART0.UTRSTAT0 & 0x2));
UART0.UTXH0 = 'C';
}
}
該程式重複的向串列埠傳送字元Cmain.c
#include "s5pc100.h"
void putc(char c)
{
while (!(UART0.UTRSTAT0 & 0x2));
UART0.UTXH0 = c;
if (c == '\n') {//換行
while (!(UART0.UTRSTAT0 & 0x2));
UART0.UTXH0 = '\r';
}
if (c == '\r') {//回車
while (!(UART0.UTRSTAT0 & 0x2));
UART0.UTXH0 = '\n';
}
}
char getc(void)
{
while (!(UART0.UTRSTAT0 & 0x1));
return UART0.URXH0;
}
void puts(char *s)
{
while (*s != '\0')
putc(*s++);
}
int main()
{
char c;
GPA0.GPA0CON = 0x22;
UART0.ULCON0 = 0x03;
UART0.UCON0 = 0x05;
UART0.UFCON0 = 0;
UART0.UMCON0 = 0;
UART0.UBRDIV0 = 35;
UART0.UDIVSLOT0 = 0x888;
UART0.UINTM0 = 0xF;
while (1) {
puts("MYTTY: ");
while (1) {
c = getc();
putc(c);
if (c == '\r')
break;
}
}
}
該程式實現的功能是將串列埠收到的東西又通過串列埠傳送回去,當從終端輸入回車的時候,實現回車換行的功能,相當於一個簡單的tty。
說明:上面兩個各程式編譯所依賴的start.s,map.lds,s5p100.h檔案在我的上一篇部落格中可以找到,可以拿過來直接使用。