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

📄 uart_int.c

📁 ARMS3C44B0X的起动代码
💻 C
字号:
#include "uart.h"
#include "R44b0.h"

#define KEY_BUFLEN 100

static unsigned char keyBuf[KEY_BUFLEN];
volatile static int keyBufWrPt=0;

volatile static int keyBufRdPt=0;


static char *uart0TxStr;


char Uart_IntGetkey(void)
{


    if(keyBufRdPt==KEY_BUFLEN)
	keyBufRdPt=0;

    while(keyBufWrPt==keyBufRdPt);  //until FIFO is triggered
    return keyBuf[keyBufRdPt++];
}


void __irq Uart0_RxInt(void)
{
    rI_ISPC=BIT_URXD0;

    keyBuf[keyBufWrPt++]=RdURXH0();
    if(keyBufWrPt==KEY_BUFLEN)
		keyBufWrPt=0;
}

//unsigned int txcount=0;
void __irq Uart0_TxInt(void)
{
//    rI_ISPC=BIT_UTXD0;
//	txcount++;
    if(*uart0TxStr != '\0')
    {
	WrUTXH0(*uart0TxStr++);
	rI_ISPC=BIT_UTXD0;
    }
    else
    {
	rUCON0 &= 0x3f3;//workaround
	rI_ISPC=BIT_UTXD0;
	rINTMSK|=BIT_UTXD0;
    }
}

void Uart_TxEmpty(int ch)
{
    if(ch==0)
	while(!(rUTRSTAT0 & 0x4)); //wait until tx shifter is empty.
    else
    	while(!(rUTRSTAT1 & 0x4)); //wait until tx shifter is empty.
}

void Test_Uart0()
{
	int key;
    keyBufRdPt=keyBufWrPt=0;
    pISR_UTXD0=(unsigned)Uart0_TxInt;
    pISR_URXD0=(unsigned)Uart0_RxInt;
}

⌨️ 快捷键说明

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