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

📄 serial_lpc23xx_v1_00.c

📁 just uploading the file to get a new downlad for AD7843
💻 C
字号:
#include "app_config.h"

const unsigned long serial_base[MAX_SERIAL] = {UART0_BASE_ADDR,UART1_BASE_ADDR,UART2_BASE_ADDR,UART3_BASE_ADDR};

void SerialInit(unsigned char dev,unsigned char dll,unsigned char fdr) //initial UART
{
	//baud rate = PCLK / (16 * dll * (1 + fdr(3..0) / fdr(7..4))
	(*(volatile unsigned long *)(serial_base[dev] + U_LCR)) = 0x83;		// 8 n 1
	(*(volatile unsigned long *)(serial_base[dev] + U_DLL)) = dll;
	(*(volatile unsigned long *)(serial_base[dev] + U_FDR)) = fdr;
	(*(volatile unsigned long *)(serial_base[dev] + U_LCR)) = 0x03;
	(*(volatile unsigned long *)(serial_base[dev] + U_FCR)) = 0x01;
}

unsigned char SerialIsRxError(unsigned char dev)
{
	if ((*(volatile unsigned long *)(serial_base[dev] + U_LSR)) & (SER_OVR_ERR | SER_PAR_ERR | SER_FRM_ERR))
		return (1);
	else
		return (0);
}

unsigned char SerialIsRxReady(unsigned char dev)
{
	if ((*(volatile unsigned long *)(serial_base[dev] + U_LSR)) & SER_RXD_RDY)
		return (1);
	else
		return (0);
}

char SerialGetRx(unsigned char dev)
{
	return (*(volatile unsigned long *)(serial_base[dev] + U_RBR));
}

unsigned char SerialIsTxEmpty(unsigned char dev)
{
	if ((*(volatile unsigned long *)(serial_base[dev] + U_LSR)) & SER_TXD_EMP)
		return (1);
	else
		return (0);
}

void SerialSendTx(unsigned char dev,char c)
{
	(*(volatile unsigned long *)(serial_base[dev] + U_THR)) = c;
}

⌨️ 快捷键说明

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