ARM实验3 ——串口实验
uart串口实验
实验内容:
编写UART模块程序,通过串口将信息打印到终端。
实验目的:
熟悉开发环境的使用。
掌握exynos4412处理器的UART功能。
实验平台:
FS4412开发板,eclipse,secureCRT.
实验步骤:
1.查看con7串口在开发板的位置;
2.查看BUF_XuTXD2在核心板的位置:
3.查看GPA1_0和GPA1_1在芯片手册中的说明:
4.查看UART_2在芯片手册的说明:
1 #include "exynos_4412.h" 2 3 //#define GPA1CON __REG(0X11400020) 4 5 // 延时函数 6 void mydelay_ms(int ms) 7 { 8 int i, j; 9 while(ms--) 10 { 11 for (i = 0; i < 5; i++) 12 for (j = 0; j < 514; j++); 13 } 14 } 15 16 void putc(const char data) 17 { 18 while(!(UART2.UTRSTAT2 & 0x2)); //shifter--若为空不能继续 19 UART2.UTXH2 = data; 20 if(data == '\n') // 检测数据发送是否结束 21 putc('\r'); 22 } 23 24 void puts(const char *pstr) 25 { 26 while(*pstr != '\0') 27 putc(*pstr++); 28 } 29 30 void uart_init() 31 { 32 // 配置串口UART2的GPIO 33 GPA1.CON = 0x22; 34 UART2.ULCON2 = 0x3; // 8n1 35 UART2.UCON2 = 0x5; // 选择传输模式为轮询模式 36 UART2.UBRDIV2 = 0x35; // DIV_VAL的整数部分 37 UART2.UFRACVAL2 = 0x5; // DIV_VAL的小数部分*16 38 39 40 } 41 unsigned char getchar(){ 42 unsigned char c; 43 while(!(UART2.UTRSTAT2 & 0x1)) 44 ; 45 c=UART2.URXH2; 46 return c; 47 } 48 49 int main() 50 { 51 //char str[] = "hello uart!\n"; 52 53 uart_init(); 54 mydelay_ms(8000); 55 puts("please input one strings\n"); 56 57 while(1) 58 { 59 putc(getchar()); 60 //mydelay_ms(800); 61 } 62 63 return 0; 64 }
实验结果: