阿哲
发表于: 2016-11-22 17:08:27 | 显示全部楼层

LPC11E68微控制器带有5个USART串口。USART1-4与UART0不同,有一套不同的寄存器映射和寄存器功能。

USART1时钟

USART1外设挂载在LPC11E68微控制器的AHB总线上,使用时应先使能SYSAHBCLKCTRL寄存器的对应位来启用USART1时钟。USART经过FRGCLKDIV分频后就能得到USART外设的时钟。如果需要使用高精度的波特率,会用到小数发生器UARTFRG进行分频。USART1到USART4共用同一个时钟。

clock.jpg

USART1波特率计算

USART1外设有一个单独的波特率发生器寄存器BRG。波特率发生器是一个由BRG寄存器控制的简单的16位整数分频器。BRG寄存器包含用于分频基本时钟的值。通常,波特率时钟是实际波特率的16倍。波特率的计算公式为:

        USART = ((SystemCoreClock / FRGCLKDIV) / 16) / BRG

USART1的分数发生器包含两个寄存器:UARTFRGDIV和UARTFRGMULT。使用分数发生器时,计算公式为:

       U_PCLK = FRGCLKDIV/(1+(MULT/DIV))

UARTFRGDIV必须设置成0xFF。MULT的值为0到255。波特率的范围为1+0/256到1+255/256。

USART1中断

USART1中断寄存器INTENSET可以设置接收中断、发送中断、发送空闲中断等。USART1的中断服务程序与USART4共用同一个USART1_4_IRQHandler。

USART1使用方法

USART1初始化的过程:

1)  在IOCON寄存器设置USART1使用引脚的功能

2)  对SYSAHBCLKCTRL的位20进行置位,使能USART1的时钟。

3) 设置USART1的时钟分频系数FRGCLKDIV。

4) 波特率设置。设置BRG、UARTFRGDIV和UARTFRGMULT。并对通讯的起始位、停止位和校验方式等设置CFG寄存器。

5) 在NVIC寄存器设置USART1的中断服务程序。

USART1例程

例程使用的USART1的时钟为49.152MHz,波特率为9600,无校验。例程实现的功能是接收串口收到的数据,进行加1操作,然后发送到串口。试验结果如下。

usart.jpg


跳转到指定楼层
rich_bxr
发表于: 2018-9-30 10:21:33 | 显示全部楼层

博主,您好,能否发给我一份 MDK关于UART的工程文件,谢谢! rich_bxr@163.com
回复

使用道具 举报

CAICAIA
发表于: 2020-6-12 10:31:47 | 显示全部楼层

请问能不能发一份这个代码给我呀,非常感谢,谢谢,1152043458@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 53 | 回复: 76



手机版|

GMT+8, 2024-4-20 10:14 , Processed in 0.143086 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表