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

📄 uart_driver.h

📁 ARM 7系统的应用 采用 LPX 2103作为处理器 集成了Mp3 液晶 无线控制 串行传输等
💻 H
字号:
/**--------------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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -