|
LPC11E68微控制器带有5个USART串口。USART1-4与UART0不同,有一套不同的寄存器映射和寄存器功能。 USART1时钟 USART1外设挂载在LPC11E68微控制器的AHB总线上,使用时应先使能SYSAHBCLKCTRL寄存器的对应位来启用USART1时钟。USART经过FRGCLKDIV分频后就能得到USART外设的时钟。如果需要使用高精度的波特率,会用到小数发生器UARTFRG进行分频。USART1到USART4共用同一个时钟。
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操作,然后发送到串口。试验结果如下。
|