⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial0.c

📁 A2D EXAMPLE FOR LPC 2378
💻 C
字号:

/*
*********************************************************************************************************
*                                           UART0 SERIAL OPERATION
*********************************************************************************************************
*/
#include "serial0.h"
#define CR 0x0D

extern char RXbuff[10];
/*********** ISR *************/
/*****************************/
void UART0_ISR(void)
{
 
    
}

/****************************/
/* Write Character To UART0 */
/****************************/
int putchar (int const ch)
{
  if (ch == '\n')
  {
    while (!(U0LSR & 0x20));  				// Wait TXD Buffer Empty
    U0THR = CR;                          		// Write CR
  }
  while (!(U0LSR & 0x20));				// Wait TXD Buffer Empty
  return (U0THR = ch);					// Write Character
}


/*****************************/
/* Read Character From UART0 */
/*****************************/
int getchar (void)
{
  while (!(U0LSR & 0x01));						// Wait RXD Receive Data Ready
  return (U0RBR);								// Get Receice Data & Return
}

/******************************/
/* Initial UART0 = 9600,N,8,1 */
/* VPB(pclk) = 24 MHz    */
/******************************/
#define Fpclk 36000000
void init_serial_0 (unsigned long baudrate)
{
        unsigned long Fdiv;
        
	PINSEL0 = 0x00000050;       /* RxD0 and TxD0 */
    	U0LCR = 0x83;		/* 8 bits, no Parity, 1 Stop bit */
    	Fdiv = ( Fpclk / 16 ) / baudrate ;	/*baud rate */
    	U0DLM = Fdiv / 256;							
    	U0DLL = Fdiv % 256;
	U0LCR = 0x03;		/* DLAB = 0 */
    	U0FCR = 0x07;		/* Enable and reset TX and RX FIFO. */

        U0FCR |= 0x01;						// FIF0 Enable
        U0FCR |= 0x02;						// RX FIFO Reset
        U0FCR |= 0x04;						// TX FIFO Reset
        U0FCR &= 0x3F;
  
  
}


void init_int_serial_0 (void)
{
    U0IER = 0x03;
    //VICIntSelect &= ~(1<<VIC_UART0);
    //VICVectAddr0 = (unsigned int)UART0_ISR;
    //VICVectCntl0 = 0x20 | VIC_UART0;
    //VICIntEnable |= (1<<VIC_UART0);
}


void printf_0(char txt[]){
  char i=0;
  while(txt[i]!=0){
    putchar(txt[i]);
    i++;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -