123
Fork of LG by
Diff: host/Source/App/uart.c
- Revision:
- 22:12e6183f04d4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/host/Source/App/uart.c Wed Feb 03 10:44:42 2016 +0300 @@ -0,0 +1,65 @@ +/**************************************************************************** + * $Id:: uart.c 5751 2010-11-30 23:56:11Z usb00423 $ + * Project: NXP LPC17xx UART example + * + * Description: + * This file contains UART code example which include UART initialization, + * UART interrupt handler, and APIs for UART access. + * +****************************************************************************/ +#include "lpc17xx.h" +#include "uart.h" + +#define FOSC 12000000 /* Õñµ´Æ÷ƵÂÊ */ + +#define FCCLK (FOSC * 8) /* Ö÷ʱÖÓƵÂÊ<=100Mhz */ + /* FOSCµÄÕûÊý±¶ */ +#define FCCO (FCCLK * 3) /* PLLƵÂÊ(275Mhz~550Mhz) */ + /* ÓëFCCLKÏàͬ£¬»òÊÇÆäµÄżÊý±¶ */ +#define FPCLK (FCCLK / 4) /* ÍâÉèʱÖÓƵÂÊ,FCCLKµÄ1/2¡¢1/4*/ + /* »òÓëFCCLKÏàͬ */ +/***************************************************************************** +** Function name: UARTInit +** +** Descriptions: Initialize UART port, setup pin select, +** clock, parity, stop bits, FIFO, etc. +** +** parameters: portNum(0 or 1) and UART baudrate +** Returned value: true or false, return false only if the +** interrupt handler can't be installed to the +** VIC table +** +*****************************************************************************/ +void UART2_Init (void) +{ + uint16_t usFdiv; + /* UART2 */ + LPC_PINCON->PINSEL0 |= (1 << 20); /* Pin P0.10 used as TXD2 (Com2) */ + LPC_PINCON->PINSEL0 |= (1 << 22); /* Pin P0.11 used as RXD2 (Com2) */ + + LPC_SC->PCONP = LPC_SC->PCONP|(1<<24); /*´ò¿ªUART2µçÔ´¿ØÖÆλ */ + + LPC_UART2->LCR = 0x83; /* ÔÊÐíÉèÖò¨ÌØÂÊ */ + usFdiv = (FPCLK / 16) / 115200; /* ÉèÖò¨ÌØÂÊ */ + LPC_UART2->DLM = usFdiv / 256; + LPC_UART2->DLL = usFdiv % 256; + LPC_UART2->LCR = 0x03; /* Ëø¶¨²¨ÌØÂÊ */ + LPC_UART2->FCR = 0x06; +} + +/********************************************************************************************************* +** Function name: UART2_SendByte +** Descriptions: ´Ó´®¿Ú2·¢ËÍÊý¾Ý +** input parameters: data: ·¢Ë͵ÄÊý¾Ý +** output parameters: ÎÞ +** Returned value: ÎÞ +*********************************************************************************************************/ +int UART2_SendByte (int ucData) +{ + while (!(LPC_UART2->LSR & 0x20)); + return (LPC_UART2->THR = ucData); +} + +/****************************************************************************** +** End Of File +******************************************************************************/