//************************************************************ // Copyright (c) 深圳市赛元微电子有限公司 // 文件名称 : sc92f8003_ssi.h // 作者 : // 模块功能 : SSI固件库函数头文件 // 局部函数列表: // 最后更正日期: 2018/9/4 // 版本 : V1.0 // 说明 : //************************************************************* #ifndef __SC92F8003_SSI_H #define __SC92F8003_SSI_H #include "sc92f8003.h" typedef enum { SSI_PinSelection_P10P27P26 = (uint8_t)0x00, //SSI共用引脚为P10,P27,P26 SSI_PinSelection_P21P22P23 = (uint8_t)0x20 //SSI共用引脚为P21,P22,P23 } SSI_PinSelection_TypeDef; typedef enum { SPI_FIRSTBIT_MSB = (uint8_t)0x00, //MSB优先发送 SPI_FIRSTBIT_LSB = (uint8_t)0x04 //LSB优先发送 } SPI_FirstBit_TypeDef; typedef enum { SPI_BAUDRATEPRESCALER_4 = (uint8_t)0x00, //SPI时钟速率为Fsys/4 SPI_BAUDRATEPRESCALER_8 = (uint8_t)0x01, //SPI时钟速率为Fsys/8 SPI_BAUDRATEPRESCALER_16 = (uint8_t)0x02, //SPI时钟速率为Fsys/16 SPI_BAUDRATEPRESCALER_32 = (uint8_t)0x03, //SPI时钟速率为Fsys/32 SPI_BAUDRATEPRESCALER_64 = (uint8_t)0x04, //SPI时钟速率为Fsys/64 SPI_BAUDRATEPRESCALER_128 = (uint8_t)0x05, //SPI时钟速率为Fsys/128 SPI_BAUDRATEPRESCALER_256 = (uint8_t)0x06, //SPI时钟速率为Fsys/256 SPI_BAUDRATEPRESCALER_512 = (uint8_t)0x07 //SPI时钟速率为Fsys/512 } SPI_BaudRatePrescaler_TypeDef; typedef enum { SPI_MODE_MASTER = (uint8_t)0x20, //SPI为主设备 SPI_MODE_SLAVE = (uint8_t)0x00 //SPI为从设备 } SPI_Mode_TypeDef; typedef enum { SPI_CLOCKPOLARITY_LOW = (uint8_t)0x00, //SCK在空闲状态下为低电平 SPI_CLOCKPOLARITY_HIGH = (uint8_t)0x10 //SCK在空闲状态下为高电平 } SPI_ClockPolarity_TypeDef; typedef enum { SPI_CLOCKPHASE_1EDGE = (uint8_t)0x00, //SCK的第一沿采集数据 SPI_CLOCKPHASE_2EDGE = (uint8_t)0x08 //SCK的第二沿采集数据 } SPI_ClockPhase_TypeDef; typedef enum { SPI_TXE_DISINT = (uint8_t)0x00, //TXE为0时不允许发送中断 SPI_TXE_ENINT = (uint8_t)0x01 //TXE为1时允许发送中断 } SPI_TXE_INT_TypeDef; typedef enum { UART1_Mode_10B = 0X00, //UART1设置为10位模式 UART1_Mode_11B = 0X80 //UART1设置为11位模式 } UART1_Mode_TypeDef; typedef enum { UART1_RX_ENABLE = 0X10, //UART1允许接收 UART1_RX_DISABLE = 0X00 //UART1禁止接收 } UART1_RX_TypeDef; typedef enum { SPI_FLAG_SPIF = (uint8_t)0x80, //SPI数据传送标志位SPIF SPI_FLAG_WCOL = (uint8_t)0x40, //SPI写入冲突标志位WCOL SPI_FLAG_TXE = (uint8_t)0x08, //SPI发送缓存器空标志TXE TWI_FLAG_TWIF = (uint8_t)0x40, //TWI中断标志位TWIF TWI_FLAG_GCA = (uint8_t)0x10, //TWI通用地址响应标志位GCA UART1_FLAG_TI = (uint8_t)0x02, //UART1发送中断标志位TI UART1_FLAG_RI = (uint8_t)0x01 //UART1接收中断标志位RI } SSI_Flag_TypeDef; void SSI_DeInit(void); void SSI_PinSelection(SSI_PinSelection_TypeDef PinSeletion); void SSI_SPI_Init(SPI_FirstBit_TypeDef FirstBit,SPI_BaudRatePrescaler_TypeDef BaudRatePrescaler,SPI_Mode_TypeDef Mode,SPI_ClockPolarity_TypeDef ClockPolarity,SPI_ClockPhase_TypeDef ClockPhase,SPI_TXE_INT_TypeDef SPI_TXE_INT); void SSI_SPI_Cmd(FunctionalState NewState); void SSI_SPI_SendData(uint8_t Data); uint8_t SSI_SPI_ReceiveData(void); void SSI_TWI_Init(uint8_t TWI_Address); void SSI_TWI_AcknowledgeConfig(FunctionalState NewState); void SSI_TWI_GeneralCallCmd(FunctionalState NewState); void SSI_TWI_Cmd(FunctionalState NewState); void SSI_TWI_SendData(uint8_t Data); uint8_t SSI_TWI_ReceiveData(void); void SSI_UART1_Init(uint32_t UART1Fsys, uint32_t BaudRate, UART1_Mode_TypeDef Mode, UART1_RX_TypeDef RxMode); void SSI_UART1_SendData8(uint8_t Data); uint8_t SSI_UART1_ReceiveData8(void); void SSI_UART1_SendData9(uint16_t Data); uint16_t SSI_UART1_ReceiveData9(void); void SSI_ITConfig(FunctionalState NewState, PriorityStatus Priority); FlagStatus SSI_GetFlagStatus(SSI_Flag_TypeDef SSI_FLAG); void SSI_ClearFlag(SSI_Flag_TypeDef SSI_FLAG); #endif /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/