【NanoPi 2】C编程(四) UART的使用

  • 天启圣光
  • LV2工程师
  • |      2016-01-17 16:55:15
  • 浏览量 1059
  • 回复:0

照例,首先讲解一个原理。

S5P4418有5个UART可以使用。而nanopi2接出了3个,分别是UART0 3 4.

首先UART使用要配置时钟源,这点在

芯片手册上的5.1节有相关描述。

1.   配置串口时钟使能UARTCLKENB

2.   配置串口时钟产生参数。包括输出使能,分频系数,选择时钟源(PLL),时钟输出反转

然后是配置串口,这点在芯片手册的24

1.   设置对应GPIO的复用功能,因为UARTRXDTXD都是几个功能复用的,需要先调整到RXDTXD功能

2.   设置对应GPIO的输入输出模式。RXD输入,TXD输出

3.   配置波特率。这里波特率的配置方法是用波特率除数,用两个寄存器来存,IBRD存放整数部分,FBRD存放小数部分。波特率除数的计算方法为

Divisor = UARTCLK/16*baud),即波特率除数=串口时钟/16*波特率),取整就直接强转int,小数取整的方法为   小数取整=小数部分*64+0.5,其中小数部分=整个数-整数部分。详情见代码

4.配置数据位,校验位,停止位

                            5.开启UART,收发使能,及禁用FIFO

配置完毕即可向寄存器DR扔数据来完成通信。这里要注意一下

UARTFRbusy,相当于C51里的TI,当此位为1表示还在发送

相对应的UARTFRRI,接收。

代码在GitHub,点这里






【NanoPi 2】C编程(四)       UART的使用

结果:【NanoPi 2】C编程(四)       UART的使用



有关代码的详细问题请在下面留言,我会及时回复的


最后发一遍https://github.com/LGinC/nanopi2

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子