📄 serial0.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 + -