(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. */
- }
- }
|