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的GPIO33 GPA1.CON = 0x22;34 UART2.ULCON2 = 0x3; // 8n135 UART2.UCON2 = 0x5; // 选择传输模式为轮询模式36 UART2.UBRDIV2 = 0x35; // DIV_VAL的整数部分37 UART2.UFRACVAL2 = 0x5; // DIV_VAL的小数部分*1638 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 }
实验结果: