📄 printc.c
字号:
/*****************************************************************************
* uart.c: UART API file for NXP LPC23xx/24xx Family Microprocessors
*
* Copyright(C) 2006, NXP Semiconductor
* All rights reserved.
*
* History
* 2006.07.12 ver 1.00 Prelimnary version, first Release
*
******************************************************************************/
#include "LPC24xx.h" /* LPC23xx/24xx definitions */
#include "type.h"
#include "target.h"
#include "uart.h"
volatile DWORD UART0Status, UART1Status;
volatile BYTE UART0TxEmpty = 1, UART1TxEmpty = 1;
volatile BYTE UART0Buffer[BUFSIZE], UART1Buffer[BUFSIZE];
volatile DWORD UART0Count = 0, UART1Count = 0;
/*****************************************************************************
** Function name: UARTInit
**
** Descriptions: 初始化UART0,
** 设置PINSEL,时钟,校验位,停止位,FIFO等
**
** parameters: UART baudrate 波特率
** Returned value: true or false, 如果中断处理不能被VIC表处理则返回错误
**
*****************************************************************************/
DWORD UARTInit( DWORD baudrate )
{
DWORD Fdiv;
PINSEL0 |= 0x00000050;
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; /* 使能并且复位TX和RX的FIFO */
//U0IER = IER_RBR | IER_RLS ; /* 使能UART0的中断 */
return (TRUE);
}
/*****************************************************************************
** Function name: UARTSend
**
** Descriptions: 通过UART0根据数据长度送出一串数据
**
** parameters: buffer pointer
** Returned value: None
**
*****************************************************************************/
void UARTSend(char *BufferPtr)
{
while(1)
{
if(*BufferPtr == '\0') break;
UARTSendByte(*BufferPtr++);
}
}
/*****************************************************************************
** Function name: UARTSendByte
**
** Descriptions: 通过UART输出一个BYTE的数据
** parameters: data
** Returned value: None
**
*****************************************************************************/
void UARTSendByte(BYTE Data)
{
U0THR = Data;
while((U0LSR &0x40) ==0);
}
/*****************************************************************************
** Function name: putch
**
** Descriptions: 实现putch输出函数,打印出多个字符
** parameters: data
** Returned value: None
**
*****************************************************************************/
void put_ch(char data)
{
UARTSend(&data);
}
/*****************************************************************************
** Function name: puts
**
** Descriptions: 实现puts输出函数,打印出单个字符
** parameters: *str
** Returned value: None
**
*****************************************************************************/
void put_s(char *str)
{
UARTSend(str);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -