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

📄 stream.h

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 H
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               stream.c
** Last modified Date:      2007-12-18
** Last Version:            1.0.1
** Descriptions:            2440 UART 流设备操作库
**
**--------------------------------------------------------------------------------------------------------
** Created by:              Hanhui
** Created date:            2007-12-18
** Version:                 1.0.0
** Descriptions:            2440 UART 流设备操作库
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             lixintian
** Modified date:           2008-04-07
** Version:                 1.0.1
** Descriptions:            移植到threadX
**
*********************************************************************************************************/

#ifndef __STREAM_H
#define __STREAM_H

/*********************************************************************************************************
  2440 UART 流类型
*********************************************************************************************************/
typedef struct {

    unsigned int        uiCom;                                          /*  串口号                      */
    
    unsigned int        uiIsCreate;                                     /*  是否被建立了                */
    
    TX_SEMAPHORE       *WriteLock;                                 /*  写操作锁                    */
    TX_SEMAPHORE       *ReadLock;                                 /*  写操作锁                    */

    char               *pBufferStart;                              
    char               *pBufferEnd;
    char               *pReadIndex;
    char               *pWriteIndex;
    int                 iByfferSize;
    int                 iRecvCnt;
    int                 iErr;
    
    unsigned int        uiBaud;                                         /*  波特率                      */
    unsigned int        uiStopBit;                                      /*  结束位                      */
    unsigned int        uiDataBit;                                      /*  数据位                      */
    unsigned int        uiCheck;                                        /*  校验选项                    */

} STREAM_CLASS;

typedef STREAM_CLASS   *PSTREAM_CLASS;                                  /*  流设备类型                  */

/*********************************************************************************************************
  2440 UART 流类型控制宏
*********************************************************************************************************/
#define COM0                        0
#define COM1                        1
#define COM2                        2

#define STREAM_SET_BAUD             10                                  /*  设置波特率                  */
#define STREAM_GET_BAUD             11                                  /*  获取波特率                  */

#define STREAM_SET_STOPBIT          20                                  /*  设置结束位                  */
#define STREAM_GET_STOPBIT          21                                  /*  获取结束位                  */

#define STREAM_SET_DATABIT          30                                  /*  设置数据位                  */
#define STREAM_GET_DATABIT          31                                  /*  获取数据位                  */

#define STREAM_SET_CHECK            40                                  /*  设置校验                    */
#define STREAM_GET_CHECK            41                                  /*  获取校验                    */

#define STREAM_NREAD                80                                  /*  还有多少数据未读出          */
/*********************************************************************************************************
** Function name:           streamCreate
** Descriptions:            创建流类型
** input parameters:        uiCom                   串口号
**                          pcBuffer                缓冲区
**                          uiMaxBytes              缓冲区大小
** output parameters:       NONE
** Returned value:          流类型句柄, 错误返回 NULL
*********************************************************************************************************/
PSTREAM_CLASS  streamCreate(unsigned int  uiCom,
                            char         *pcBuffer,
                            unsigned int  uiMaxBytes);
                            
/*********************************************************************************************************
** Function name:           streamWrite
** Descriptions:            写流类型
** input parameters:        psrtclassCom            控制块指针
**                          pcBuffer                缓冲区
**                          uiBytes                 发送的字节数
** output parameters:       NONE
** Returned value:          实际发送的字节数
*********************************************************************************************************/
int  streamWrite(PSTREAM_CLASS  psrtclassCom,
                 char          *pcBuffer,
                 unsigned int   uiBytes);

/*********************************************************************************************************
** Function name:           streamRead
** Descriptions:            读流类型
** input parameters:        psrtclassCom            控制块指针
**                          pcBuffer                缓冲区
**                          uiMaxBytes              缓冲的字节数
** output parameters:       NONE
** Returned value:          实际读出的字节数
*********************************************************************************************************/
int  streamRead(PSTREAM_CLASS  psrtclassCom,
                char          *pcBuffer,
                unsigned int   uiMaxBytes);

/*********************************************************************************************************
** Function name:           streamIoctl
** Descriptions:            流类型控制
** input parameters:        psrtclassCom            控制块指针
**                          iCommand                控制命令
**                          iArg                    命令参数
** output parameters:       NONE
** Returned value:          根据命令确定返回值
*********************************************************************************************************/
int  streamIoctl(PSTREAM_CLASS  psrtclassCom,
                 int            iCommand,
                 int            iArg);

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

⌨️ 快捷键说明

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