41 #define BUFSIZE (BUFSIZE_WIFLY)
59 uint8_t IIRValue, LSRValue;
60 uint8_t Dummy = Dummy;
62 IIRValue = LPC_UART0->IIR;
68 LSRValue = LPC_UART0->LSR;
75 Dummy = LPC_UART0->RBR;
101 else if ( IIRValue ==
IIR_CTI )
109 LSRValue = LPC_UART0->LSR;
133 uint8_t IIRValue, LSRValue;
134 uint8_t Dummy = Dummy;
136 IIRValue = LPC_UART1->IIR;
142 LSRValue = LPC_UART1->LSR;
149 Dummy = LPC_UART1->RBR;
165 else if ( IIRValue ==
IIR_RDA )
175 else if ( IIRValue ==
IIR_CTI )
183 LSRValue = LPC_UART1->LSR;
207 uint8_t IIRValue, LSRValue;
208 uint8_t Dummy = Dummy;
210 IIRValue = LPC_UART2->IIR;
216 LSRValue = LPC_UART2->LSR;
223 Dummy = LPC_UART2->RBR;
239 else if ( IIRValue ==
IIR_RDA )
249 else if ( IIRValue ==
IIR_CTI )
257 LSRValue = LPC_UART2->LSR;
274 uint8_t IIRValue, LSRValue;
275 uint8_t Dummy = Dummy;
277 IIRValue = LPC_UART3->IIR;
283 LSRValue = LPC_UART3->LSR;
290 Dummy = LPC_UART3->RBR;
306 else if ( IIRValue ==
IIR_RDA )
316 else if ( IIRValue ==
IIR_CTI )
324 LSRValue = LPC_UART3->LSR;
339 uint32_t
UARTInit( uint32_t PortNum, uint32_t baudRate )
342 uint32_t pclkdiv, pclk;
346 LPC_PINCON->PINSEL0 &= ~0x000000F0;
347 LPC_PINCON->PINSEL0 |= 0x00000050;
351 pclkdiv = (LPC_SC->PCLKSEL0 >> 6) & 0x03;
356 pclk = SystemCoreClock/4;
359 pclk = SystemCoreClock;
362 pclk = SystemCoreClock/2;
365 pclk = SystemCoreClock/8;
369 LPC_UART0->LCR = 0x83;
370 Fdiv = ( pclk / 16 ) / baudRate ;
371 LPC_UART0->DLM = Fdiv / 256;
372 LPC_UART0->DLL = Fdiv % 256;
373 LPC_UART0->LCR = 0x03;
374 LPC_UART0->FCR = 0x07;
376 NVIC_EnableIRQ(UART0_IRQn);
381 else if ( PortNum == 1 )
383 LPC_PINCON->PINSEL4 &= ~0x0000000F;
384 LPC_PINCON->PINSEL4 |= 0x0000000A;
389 pclkdiv = (LPC_SC->PCLKSEL0 >> 8) & 0x03;
394 pclk = SystemCoreClock/4;
397 pclk = SystemCoreClock;
400 pclk = SystemCoreClock/2;
403 pclk = SystemCoreClock/8;
407 LPC_UART1->LCR = 0x83;
408 Fdiv = ( pclk / 16 ) / baudRate ;
409 LPC_UART1->DLM = Fdiv / 256;
410 LPC_UART1->DLL = Fdiv % 256;
411 LPC_UART1->LCR = 0x03;
412 LPC_UART1->FCR = 0x07;
414 NVIC_EnableIRQ(UART1_IRQn);
419 else if ( PortNum == 2 )
421 LPC_PINCON->PINSEL0 &= ~0x00F00000;
422 LPC_PINCON->PINSEL0 |= 0x00A00000;
423 LPC_SC->PCONP |= 1<<24;
428 pclkdiv = (LPC_SC->PCLKSEL1 >> 16) & 0x03;
433 pclk = SystemCoreClock/4;
436 pclk = SystemCoreClock;
439 pclk = SystemCoreClock/2;
442 pclk = SystemCoreClock/8;
446 LPC_UART2->LCR = 0x83;
447 Fdiv = ( pclk / 16 ) / baudRate ;
448 LPC_UART2->DLM = Fdiv / 256;
449 LPC_UART2->DLL = Fdiv % 256;
450 LPC_UART2->LCR = 0x03;
451 LPC_UART2->FCR = 0x07;
453 NVIC_EnableIRQ(UART1_IRQn);
458 else if ( PortNum == 3 )
460 LPC_PINCON->PINSEL0 &= ~0x0000000F;
461 LPC_PINCON->PINSEL0 |= 0x0000000A;
462 LPC_SC->PCONP |= 1<<4 | 1<<25;
466 pclkdiv = (LPC_SC->PCLKSEL1 >> 18) & 0x03;
471 pclk = SystemCoreClock/4;
474 pclk = SystemCoreClock;
477 pclk = SystemCoreClock/2;
480 pclk = SystemCoreClock/8;
483 LPC_UART3->LCR = 0x83;
484 Fdiv = ( pclk / 16 ) / baudRate ;
485 LPC_UART3->DLM = Fdiv / 256;
486 LPC_UART3->DLL = Fdiv % 256;
487 LPC_UART3->LCR = 0x03;
488 LPC_UART3->FCR = 0x07;
490 NVIC_EnableIRQ(UART3_IRQn);
503 LPC_PINCON->PINSEL0 &= ~0x000000F0;
506 NVIC_DisableIRQ(UART0_IRQn);
509 else if ( PortNum == 1 )
511 LPC_PINCON->PINSEL4 &= ~0x0000000F;
514 NVIC_DisableIRQ(UART1_IRQn);
517 else if ( PortNum == 2 )
519 LPC_PINCON->PINSEL0 &= ~0x00F00000;
520 LPC_SC->PCONP &= ~1<<24;
523 NVIC_DisableIRQ(UART2_IRQn);
526 else if ( PortNum == 3 )
528 LPC_PINCON->PINSEL0 &= ~0x0000000F;
529 LPC_SC->PCONP &= ~(1<<4 | 1<<25);
532 NVIC_DisableIRQ(UART3_IRQn);
538 void UARTSend( uint32_t portNum, uint8_t *BufferPtr, uint32_t Length )
542 while ( Length != 0 )
546 LPC_UART0->THR = *BufferPtr;
552 else if (portNum == 1)
554 while ( Length != 0 )
558 LPC_UART1->THR = *BufferPtr;
564 else if ( portNum == 2 )
566 while ( Length != 0 )
570 LPC_UART2->THR = *BufferPtr;
576 else if ( portNum == 3 )
578 while ( Length != 0 )
582 LPC_UART3->THR = *BufferPtr;
609 }
while(oldCount != newCount);
611 strncpy(
string,(
const char*)
UART0Buffer , newCount );
613 else if (portNum == 1)
623 }
while(oldCount != newCount);
625 strncpy(
string,(
const char*)
UART1Buffer , newCount );
627 else if ( portNum == 2 )
637 }
while(oldCount != newCount);
639 strncpy(
string,(
const char*)
UART2Buffer , newCount );
641 else if ( portNum == 3 )
651 }
while(oldCount != newCount);
653 strncpy(
string,(
const char*)
UART3Buffer , newCount );
656 string[newCount] = 0;
668 for(i = 0; i < ( ((uint32_t)7140)*ms); i++){
673 const int delay = ms / portTICK_RATE_MS;
687 else if ( portNum == 1 )
692 else if ( portNum == 2 )
697 else if ( portNum == 3 )
volatile uint8_t UART1Buffer[BUFSIZE]
void delayMs(uint32_t ms, uint8_t type)
volatile uint32_t UART2Count
volatile uint8_t UART0TxEmpty
void UART2_IRQHandler(void)
volatile uint8_t UART2TxEmpty
volatile uint8_t UART3Buffer[BUFSIZE]
volatile uint32_t UART0Status
volatile uint8_t UART0Buffer[BUFSIZE]
volatile uint32_t UART3Status
volatile uint32_t UART0Count
uint32_t UARTInit(uint32_t PortNum, uint32_t baudRate)
void clearBuffUart(uint8_t portNum)
uint32_t UARTClose(uint8_t PortNum)
volatile uint8_t UART3TxEmpty
void UART3_IRQHandler(void)
void UART0_IRQHandler(void)
void UART1_IRQHandler(void)
volatile uint32_t UART2Status
volatile uint8_t UART1TxEmpty
__attribute__((optimize("O0")))
volatile uint32_t UART1Status
int UARTReceive(uint8_t portNum, char *string, uint32_t timeout)
volatile uint8_t UART2Buffer[BUFSIZE]
void UARTSend(uint32_t portNum, uint8_t *BufferPtr, uint32_t Length)
volatile uint32_t UART3Count
volatile uint32_t UART1Count