📄 uart.c
字号:
#include "./src/config.h"
volatile uint8 rcv_new;
extern uint8 rcv_buf[8];
extern uint8 kk_buf[8];
//UART0中断服务程序
void __irq IRQ_UART0(void)
{
uint8 i;
if(0x04 == (U0IIR&0x0F))
rcv_new = 1;
for(i=0; i<8; i++)
{
rcv_buf[i] = U0RBR;
}
VICVectAddr = 0x00;
}
//UART0初始化
void UART0_init(uint32 baud)
{
uint16 Fdiv;
U0LCR = 0x83; //使能除数寄存器,以进行波特率设置
Fdiv = (Fpclk>>4)/baud; //设置波特率
U0DLM = Fdiv>>8;
U0DLL = Fdiv&0xff;
U0LCR = 0x03;
U0FCR = 0x81; //使用8字节FIFO
U0IER = 0x01; //使能接收中断
VICIntSelect = 0x00000000; //IRQ中断
VICVectCntl1 = 0x26; //中断优先级0
VICVectAddr1 = (int)IRQ_UART0; //向量地址
VICIntEnable |= 1<<6; //使能UART0中断
}
//UART0字节发送程序
void UART0_SendByte(uint8 data)
{
U0THR = data;
while((U0LSR&0x40)==0);
}
//UART0字符串发送程序
void UART0_SendStr(const uint8 *buf,uint8 Lenth)
{
uint8 i;
for(i=0; i<Lenth; i++) UART0_SendByte(buf[i]);
while((U0LSR&0x20)==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -