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

📄 spi.c

📁 南京沁恒电子有限公司USB通用设备接口芯片资料
💻 C
字号:
// *******************************************************************
//Website:  http://wch.cn
//Email:    tech@wch.cn
//Author:   W.ch 2007.6
// *******************************************************************

/**********************************************************************
        定义CH432串口0的寄存器地址
***********************************************************************/

#define CH432_RBR_PORT     REG_RBR_ADDR     /* 假定CH432接收缓冲寄存器0的I/O地址 */
#define CH432_THR_PORT     REG_THR_ADDR     /* 假定CH432发送保持寄存器0的I/O地址 */
#define CH432_IER_PORT     REG_IER_ADDR     /* 假定CH432中断使能寄存器0的I/O地址 */
#define CH432_IIR_PORT     REG_IIR_ADDR     /* 假定CH432中断识别寄存器0的I/O地址 */
#define CH432_FCR_PORT     REG_FCR_ADDR     /* 假定CH432FIFO控制寄存器0的I/O地址 */
#define CH432_LCR_PORT     REG_LCR_ADDR     /* 假定CH432线路控制寄存器0的I/O地址 */
#define CH432_MCR_PORT     REG_MCR_ADDR     /* 假定CH432MODEM控制寄存器0的I/O地址 */
#define CH432_LSR_PORT     REG_LSR_ADDR     /* 假定CH432线路状态寄存器0的I/O地址 */
#define CH432_MSR_PORT     REG_MSR_ADDR     /* 假定CH432MODEM状态寄存器0的I/O地址 */
#define CH432_SCR_PORT     REG_SCR_ADDR     /* 假定CH432用户可定义寄存器0的I/O地址 */
#define CH432_DLL_PORT     REG_DLL_ADDR
#define CH432_DLM_PORT     REG_DLM_ADDR

/**************************************************************************
        定义CH432串口1的寄存器地址
**************************************************************************/

#define CH432_RBR1_PORT    REG_RBR1_ADDR    /* 假定CH432接收缓冲寄存器1的I/O地址 */
#define CH432_THR1_PORT    REG_THR1_ADDR    /* 假定CH432发送保持寄存器1的I/O地址 */
#define CH432_IER1_PORT    REG_IER1_ADDR    /* 假定CH432中断使能寄存器1的I/O地址 */
#define CH432_IIR1_PORT    REG_IIR1_ADDR    /* 假定CH432中断识别寄存器1的I/O地址 */
#define CH432_FCR1_PORT    REG_FCR1_ADDR    /* 假定CH432FIFO控制寄存器1的I/O地址 */
#define CH432_LCR1_PORT    REG_LCR1_ADDR    /* 假定CH432线路控制寄存器1的I/O地址 */
#define CH432_MCR1_PORT    REG_MCR1_ADDR    /* 假定CH432MODEM控制寄存器1的I/O地址 */
#define CH432_LSR1_PORT    REG_LSR1_ADDR    /* 假定CH432线路状态寄存器1的I/O地址 */
#define CH432_MSR1_PORT    REG_MSR1_ADDR    /* 假定CH432MODEM状态寄存器1的I/O地址 */
#define CH432_SCR1_PORT    REG_SCR1_ADDR    /* 假定CH432用户可定义寄存器1的I/O地址 */
#define CH432_DLL1_PORT    REG_DLL1_ADDR
#define CH432_DLM1_PORT    REG_DLM1_ADDR

UINT8 ReadCH432Data( UINT8 mAddr )    /* 从指定寄存器读取数据 */
{
    UINT8 d;
    Spi432Start( ( mAddr<<2 ) &0xFD );    /* 位5-2为当前操作地址,位1为0读操作 */
    d = Spi432InByte( );
    Spi432Stop( );
    return( d );
}

void WriteCH432Data( UINT8 mAddr, UINT8 mData )    /* 向指定寄存器写入数据 */
{
    Spi432Start( ( mAddr<<2 ) | 0x02 );    /* 位5-2为当前操作地址,位1为1写操作 */
    Spi432OutByte( mData );
    Spi432Stop( );
}

void WriteCH432Block( UINT8 mAddr, UINT8 mLen, PUINT8 mBuf )    /* 向指定起始地址写入数据块 */
{
    while ( mLen -- ) WriteCH432Data( mAddr, *mBuf++ );
}


⌨️ 快捷键说明

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