uart_driver.h
来自「ARM 7系统的应用 采用 LPX 2103作为处理器 集成了Mp3」· C头文件 代码 · 共 88 行
H
88 行
/**--------------File Info-------------------------------------------------------------------------------
** File Name: config.h
** Last modified Date: 2004-09-17
** Last Version: 1.0
** Descriptions: User Configurable File
**
**------------------------------------------------------------------------------------------------------
** Created By: Chenmingji
** Created date: 2004-09-17
** Version: 1.0
** Descriptions: First version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#ifndef __UART_DRIVER_H
#define __UART_DRIVER_H
# define UART_BPS 9600
volatile uint8 uiGRcvNew; /* 串口接收新数据的标志 */
uint8 uiGRcvBuf[30] = {0}; /* 串口接收数据缓冲区 */
uint32 uiGNum; /* 串口接收数据的个数 */
void __irq UART0_IRQ (void)
{
uiGNum = 0;
int_flag=1;
int_type=2;
while ((U0IIR & 0x01) == 0){ /* 判断是否有中断挂起 */
switch (U0IIR & 0x0E){ /* 判断中断标志 */
case 0x04: /* 接收数据中断 */
uiGRcvNew = 1; /* 置接收新数据标志 */
for (uiGNum = 0; uiGNum < 8; uiGNum++){ /* 连续接收8个字节 */
uiGRcvBuf[uiGNum] = U0RBR;
}
break;
case 0x0C: /* 字符超时中断 */
uiGRcvNew = 1;
while ((U0LSR & 0x01) == 0x01){ /* 判断数据是否接收完毕 */
uiGRcvBuf[uiGNum] = U0RBR;
uiGNum++;
}
break;
default:
break;
}
}
VICVectAddr = 0x00;
}
void UARTInit (void)
{
uint16 uiFdiv;
U0LCR = 0x83; /* 允许设置波特率 */
uiFdiv = (Fpclk / 16) / UART_BPS; /* 设置波特率*/
U0DLM = uiFdiv / 256;
U0DLL = uiFdiv % 256;
U0LCR = 0x03; /* 锁定波特率 */
}
void UART0SendByte (uint8 uiDat)
{
U0THR = uiDat; /* 写入数据 */
while ((U0LSR & 0x20) == 0); /* 等待数据发送完毕 */
}
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?