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 == '
')    // 检测数据发送是否结束
21         putc('
');
22 }
23 
24 void puts(const char *pstr)
25 {
26     while(*pstr != '')
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!
";
52 
53     uart_init();
54     mydelay_ms(8000);
55     puts("please input one strings
");
56 
57     while(1)
58     {
59         putc(getchar());
60         //mydelay_ms(800);
61     }
62 
63     return 0;
64 }

实验结果:

原文地址:https://www.cnblogs.com/lanbofei/p/9663059.html