(1)、 uart.c源文件#include "includes.h"
/********************************************************************************
* 函数名称 :uint32_t UARTInit( uint32_t PortNum, uint32_t baudrate )
* 函数功能 : 串口初始化
* 入口参数 : uint32_t PortNum -- 端口号(0、1)
* uint32_t baudrate -- 波物率
* 出口参数 : 返回真或假
* 备 注 :如果中断句柄没有建立在向量表中则返回false
*******************************************************************************/
void UARTInit( uint32_t PortNum, uint32_t baudrate )
{
uint32_t Fdiv;
if ( PortNum == 0 )
{
PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 -- TXD0 (Com0) */
PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 -- RXD0 (Com0) */
UART0->LCR = 0x83; /* 8 bits, 无校验, 1 个停止位 */
Fdiv = (SystemFrequency/4/ 16) / baudrate;/* 设置波特率 */
UART0->DLM = Fdiv / 256;
UART0->DLL = Fdiv % 256+1;
UART0->LCR = 0x03; /* 锁定波特率 */
UART0->FCR = 0x07; /* 串口先进先出控制寄存器设置*/
}
else if ( PortNum == 1 )
{
PINCON->PINSEL4 |= (1<<1); /* Pin P2.0 -- TXD1 (Com1)*/
PINCON->PINSEL4 |= (1<<3); /* Pin P2.1 -- RXD1 (Com1)*/
UART1->LCR = 0x83; /* 8 bits, 无校验, 1 个停止位 */
Fdiv = (SystemFrequency/4/16)/ baudrate ; /* 设置波特, Fpclk: 18MHz */
UART1->DLM = Fdiv/256;
UART1->DLL = (Fdiv%256)+1;
UART1->LCR = 0x03; /* DLAB = 0 */
UART1->FCR = 0x07; /* 使能TX与 RX 并初始化FIFO. */
}
}
|