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

📄 uart.h

📁 C语言源代码及相关资料
💻 H
📖 第 1 页 / 共 2 页
字号:
                          char *pcArg);

/*********************************************************************************************************
** Function name:           uartGetState
** Descriptions:            获取当前串口的参数
** input parameters:        uiId:               子设备号
**                          pcArg:              字符串指针
** Output parameters:       pcArg:              输出字符串参数
** Returned value:			OPERATE_SUCCESS:    操作成功
**                          OPERATE_FAIL:       操作失败
*********************************************************************************************************/
extern int32 uartGetState (uint32 uiId, char * pcArg);

/*********************************************************************************************************
** Function name:           uartFifoStatus
** Descriptions:            获取Queue队列的状态 
** input parameters:        uiId:           子设备号
**                          uiWhichFifo:    TX_FIFO-发送队列;RX_FIFO-接收队列
** Returned value:          发送队列中可操作的空间大小,或接收队列中可用数据个数
*********************************************************************************************************/
extern int32 uartFifoStatus (uint32 uiId, uint32 uiWhichFifo);

/*********************************************************************************************************
** Function name:           uartFifoFlush
** Descriptions:            清空接收或发送Queue队列
** input parameters:        uiId:        UART子设备号
**                          uiWhichFifo: TX_FIFO-发送队列;RX_FIFO-接收队列
** Output parameters:       NONE
** Returned value:			OPERATE_SUCCESS:    操作成功
**                          OPERATE_FAIL:       操作失败
*********************************************************************************************************/
extern int32 uartFifoFlush (uint32 uiId, uint32 uiWhichFifo);

/*********************************************************************************************************
** Function name:           uartRead
** Descriptions:            从串口设备读取数据
** input parameters:        uiId:        子设备号
**                          puiBuf:      保存返回数据的字符串指针地址
**                          uiNum:       读取的数据个数
**                          pRsv:        保留参数
** Output parameters:       puiBuf:      读到的数据首地址      
** Returned value:          实际读取的数据个数
*********************************************************************************************************/
extern int32   uartRead (uint32 uiId,
                         uint8 *puiBuf,
                         uint32 uiNum,
                         void *pRsv);

/*********************************************************************************************************
** Function name:           uartWrite
** Descriptions:            向串口设备写数据
** input parameters:        uiId:       子设备号
**                          puiBuf:     输出数据的字符串指针地址
**                          uiNum:      一次写入的数据个数
**                          pRsv:       保留参数
** Output parameters:       NONE
** Returned value:          实际发送的数据个数
*********************************************************************************************************/
extern int32    uartWrite (uint32 uiId,
                           uint8 *puiBuf,
                           uint32 uiNum,
                           void *pRsv);

/*********************************************************************************************************
** Function name:           uartDirectWrite
** Descriptions:            向串口设备直接发送数据
** input parameters:        uiId      : 子设备号
**                          uiData    : 输出的数据                            
**                          Rsv     : 保留参数(NULL)
** Output parameters:       NONE
** Returned value:          实际发送的数据个数(1或0);
*********************************************************************************************************/
extern int32   uartDirectWrite (uint32 uiId, uint8 uiData);
extern int32   uartDirectMultiWrite (uint32 uiId,
                           uint8 *puiBuf,
                           uint32 uiNum,
                           void *pRsv);
/*********************************************************************************************************
** Function name:           uartIsr
** Descriptions:            UART中断服务程序
** input parameters:        uiId      : 子设备号
** Output parameters:       NONE
** Returned value:          无
*********************************************************************************************************/
extern void uartIsr (uint32 uiId);

/*********************************************************************************************************
** Function name:           uart0Isr
** Descriptions:            UART0中断入口函数
** input parameters:        NONE
** Output parameters:       NONE
** Returned value:          无
********************************************************************************************************/
 extern __PUART_INFO __GpuiUartInfoTab[4];
 
 extern OS_EVENT *poeUart0ReviceSem;                                    /*  接收UART0数据标志          */  
__inline void uart0Isr (void)
{
    uartIsr(UART0);                                                     /*  UART中断管理函数           */                                                               
    
//    if (__GpuiUartInfoTab[UART0]->uiUartState == 0) {                   /*  处于接收状态               */
//        OSSemPost(poeUart0ReviceSem);                                   /*  发送UART0信号量            */  
//    }                                                              

    VICVectAddr = 0x00;                                                 /*  中断处理结束               */
}

/*********************************************************************************************************
** Function name:           uart1Isr
** Descriptions:            UART1中断入口函数
** input parameters:        NONE
** Output parameters:       NONE
** Returned value:          无
*********************************************************************************************************/
 extern OS_EVENT *poeUart1ReviceSem;                                    /*  接收UART1数据标志           */
__inline void uart1Isr (void)
{
    uartIsr(UART1); 

//    if (__GpuiUartInfoTab[UART1]->uiUartState == 0) {                   /*  处于接收状态                */
//        OSSemPost(poeUart1ReviceSem);                                   /*  发送UART1信号量             */  
//    }    

    VICVectAddr = 0x00;                                                 /*  中断处理结束                */
}

/*********************************************************************************************************
** Function name:           uart2Isr
** Descriptions:            UART2中断入口函数
** input parameters:        NONE
** Output parameters:       NONE
** Returned value:          无
*********************************************************************************************************/
 extern OS_EVENT *poeUart2ReviceSem;                                    /*  接收UART2数据标志           */
__inline void uart2Isr (void)
{
    uartIsr(UART2); 

//    if (__GpuiUartInfoTab[UART2]->uiUartState == 0) {                   /*  处于接收状态                */
//        OSSemPost(poeUart2ReviceSem);                                   /*  发送UART2信号量             */  
//    }    

    VICVectAddr = 0x00;                                                 /*  中断处理结束                */
}

/*********************************************************************************************************
** Function name:           uart3Isr
** Descriptions:            UART3中断入口函数
** input parameters:        NONE
** Output parameters:       NONE
** Returned value:          无
*********************************************************************************************************/
 extern OS_EVENT *poeUart3ReviceSem;                                    /*  接收UART3数据标志           */
__inline void uart3Isr (void)
{
    uartIsr(UART3); 

//    if (__GpuiUartInfoTab[UART3]->uiUartState == 0) {                   /*  处于接收状态                */
//        OSSemPost(poeUart3ReviceSem);                                   /*  发送UART3信号量             */  
//    }    

    VICVectAddr = 0x00;                                                 /*  中断处理结束                */
}

#endif                                                                  /*  __UART_H                    */
/*********************************************************************************************************
   END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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