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

📄 uart.c

📁 一个是混合鼠标键盘功能的HID设备使用d12
💻 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 + -