📄 spi.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 + -