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

📄 uart.h

📁 ZLG MINIARM-N20源代码
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:           uart.h
** Last modified Date:  2007-07-07
** Last Version:        1.00
** Descriptions:        uart参数配置信息
**--------------------------------------------------------------------------------------------------------
** Created by:          Liu Weifeng
** Created date:        2007-11-15
** Version:             1.00
** Descriptions:        The original version
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
*********************************************************************************************************/
#ifndef __UARTCONFIG_H
#define __UARTCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif									                                /*  __cplusplus				    */

/*********************************************************************************************************
  UART 相关索引
*********************************************************************************************************/
#define  UART0              0                                           /*  UART0 ID 号                 */
#define  UART1              1                                           /*  UART1 ID 号                 */

#define  UART0_IRQ_CHN      6                                           /*  UART0中断通道号             */
#define  UART1_IRQ_CHN      7                                           /*  UART1中断通道号             */

/*********************************************************************************************************
  UART 模式配置命令
*********************************************************************************************************/
#define  SET_BAUDRATE       0                                           /*  串口波特率                  */
#define  SET_CTRLMODE       1                                           /*  串口模式                    */
#define  SET_TIMEOUT        2                                           /*  超时设置                    */
#define  SET_MODEM          3                                           /*  UART1 Modem功能             */
#define  SET_RS485          4                                           /*  US485设置                   */
#define  SET_FLOWTYPE       5                                           /*  设置流控制类型              */
#define  SET_SPRINGCH       6                                           /*  重新设置触发字符            */
#define  SET_SPRINGPT       7                                           /*  重新设置接收中断触发点      */

/*********************************************************************************************************
  用户可调用的钩子函数
*********************************************************************************************************/
typedef struct uartHooks {
    /*
     *  钩子函数流
     */
    void          (*pModemState)(void *pRsv, uint8 ucMsr);              /*   Modem状态变化调用的函数    */
                                                                        /*   pRsv: 保留,用户不要操作    */
                                                                        /*   ucMsr:   MSR寄存器的值     */

    void          (*pSendEnd)(void *pRsv);                              /*   数据包发送结束调用的函数   */
                                                                        /*   pRsv: 保留,用户不要操作    */

    void          (*pRevice)(void *pRsv, INT8U ucRbr);                  /*   接收到字符调用的函数       */
                                                                        /*   pRsv: 保留,用户不要操作    */
                                                                        /*   ucRbr:   接收到的字符      */
    void          (*pLineErr)(void *pRsv, INT8U ucLcr);
                                                                        /*   线路状态出错中断调用的函数 */
    /*
     *  触发设置
     */
    char            cSpringChar;                                        /*   触发的字符                 */
    void          (*pSpringFunction)(void *pRsv);                       /*   接收到触发的字符后
                                                                             调用的函数                 */
                                                                        /*   pRsv: 保留,用户不要操作    */
}UART_HOOKS, *PUART_HOOKS;

#ifndef IN_UART_C

/*********************************************************************************************************
** Function name:           UartInit
** Descriptions:            串口初始化
** input parameters:        ID      : 子设备号
**                          arg     :字符串指针
**                          Rsv     :保留参数
** output parameters:       None
** Returned value:          操作成功:OPERATE_SUCCESS;
**                          操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 UartInit (uint32 ID, 
                       char  *Arg, 
                       void  *Rsv);

/*********************************************************************************************************
** Function name:           UartWrite
** Descriptions:            串口写操作
** input parameters:        ID      :子设备号
**                          buf     :数据存放地址
**                          n       :读取字节个数
**                          Rsv     :保留参数
** output parameters:       None
** Returned value:          成功写入字节个数
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
extern uint32 UartWrite (uint32 ID, 
                         uint8 *buf, 
                         uint32 n, 
                         void  *Rsv);

/*********************************************************************************************************
** Function name:           UartDirectWrite
** Descriptions:            向串口设备直接发送数据
** input parameters:        ID      : 子设备号
**                          data    : 输出的数据
**                          Rsv     : 保留参数(NULL)
** output parameters:       None
** Returned value:          实际发送的数据个数
*********************************************************************************************************/
extern int32 UartDirectWrite (uint32 ID, 
                              uint8 *buf, 
                              uint32 n,
                              void  *Rsv);

/*********************************************************************************************************
** Function name:           UartSetMode
** Descriptions:            设置串口的参数
** input parameters:        ID      : 子设备号
**                          Cmd     :设置参数宏:CTMODE--串口模式;BAUDRATE--串口波特率
**                          arg     :字符串指针
** output parameters:       None
** Returned value:          操作成功:OPERATE_SUCCESS;
**                          操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 UartSetMode (uint32 ID, 
                          uint32 Cmd, 
                          char  *Arg);

/*********************************************************************************************************
** Function name:           UartRead
** Descriptions:            串口读操作
** input parameters:        ID      : 子设备号
**                          buf     :数据存放地址
**                          n       :读取字节个数
**                          Rsv     :保留参数
** output parameters:       None
** Returned value:          成功读取字节个数
*********************************************************************************************************/
extern int32 UartRead (uint32 ID,
                       uint8 *buf, 
                       uint32 n, 
                       void  *Rsv);

/*********************************************************************************************************
** Function name:			UartGetState
** Descriptions:			获取当前串口的参数并以字符串的形式返回
** input parameters:		ID      : 子设备号
**							arg		:字符串指针
** Returned value:			操作成功:OPERATE_SUCCESS;
**							操作失败:OPERATE_FAIL
**********************************************************************************************************/
extern INT32S UartGetState(uint32 ID,char * Arg);

/*********************************************************************************************************
** Function name:           UartISR
** Descriptions:            UART中断服务程序
** input parameters:        ID      : 子设备号
** output parameters:       None
** Returned value:          无
*********************************************************************************************************/
extern void UartISR (uint32 ID);
/*********************************************************************************************************
** Function name:           rs485Input
** Descriptions:            RS485方向控制引脚设置为输入
** input parameters:        ID      : 子设备号
** output parameters:       None
** Returned value:          操作成功:OPERATE_SUCCESS;
**                          操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 rs485Input (uint32 ID);
/********************************************************************************************************/

__inline void UART0_ISR (void)
{
    UartISR(UART0);
    /*
     *  添加用户代码
     */
    VICVectAddr = 0x00;                                                 /*  中断处理结束                */
}
__inline void UART1_ISR (void)
{
    UartISR (UART1);
    /*
     *  添加用户代码
     */
    VICVectAddr = 0x00;                                                 /*  中断处理结束                */
}

#endif
#ifdef __cplusplus
    }
#endif									                                /*  __cplusplus				    */
#endif									                                /*  __UARTCONFIG_H    		    */
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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