// ============================================================================= // 功能:IIC底层驱动的初始化,完成整个IIC总线的初始化,其主要工作如下: // 1.初始化总线控制块IIC_CB,回调函数和缓冲区的初始化赋值; // 2.默认的硬件初始化,如GPIO或IIC寄存器等; // 3.中断初始化,完成读写中断配置; // 4.调用IICBusAdd或IICBusAdd_r增加总线结点; // 参数:para,无具体意义 // 返回:无 // ============================================================================= bool_t IIC1_Init(void) { static u8 s_IIC1Buf[IIC1_BUF_LEN]; struct IIC_Param IIC1_Config; IIC1_Config.BusName = "IIC1"; IIC1_Config.IICBuf = (u8*)&s_IIC1Buf; IIC1_Config.IICBufLen = IIC1_BUF_LEN; IIC1_Config.SpecificFlag = CN_IIC1_BASE; IIC1_Config.pGenerateWriteStart = (WriteStartFunc)__IIC_GenerateWriteStart; IIC1_Config.pGenerateReadStart = (ReadStartFunc)__IIC_GenerateReadStart; IIC1_Config.pGenerateEnd = (GenerateEndFunc)__IIC_GenerateEnd; IIC1_Config.pBusCtrl = (IICBusCtrlFunc)__IIC_BusCtrl; IIC1_Config.pWriteReadPoll = (WriteReadPoll)__IIC_WriteReadPoll; __IIC_GpioConfig(CN_IIC1); __IIC_IntConfig(CN_INT_LINE_I2C1_EV,__IIC_ISR); if(NULL == IIC_BusAdd_s(&s_IIC1_CB,&IIC1_Config)) return 0; return 1; }
// ============================================================================= // 功能:IIC底层驱动的初始化,完成整个IIC总线的初始化,其主要工作如下: // 1.初始化总线控制块IIC_CB,回调函数和缓冲区的初始化赋值; // 2.默认的硬件初始化,如GPIO或IIC寄存器等; // 3.中断初始化,完成读写中断配置; // 4.调用IICBusAdd或IICBusAdd_r增加总线结点; // 参数:para,无具体意义 // 返回:无 // ============================================================================= bool_t IIC0_Init(void) { static u8 s_IIC0Buf[IIC0_BUF_LEN]; struct tagIIC_Param IIC0_Config; IIC0_Config.BusName="IIC0"; IIC0_Config.SimpleBuf=(u8 *)&s_IIC0Buf; IIC0_Config.SimpleBufLen=IIC0_BUF_LEN; IIC0_Config.SpecificFlag=CN_IIC0_BADDR; IIC0_Config.GenerateWriteStart=__IIC_GenerateWriteStart; IIC0_Config.GenerateReadStart = __IIC_GenerateReadStart; IIC0_Config.GenerateEnd = __IIC_GenerateEnd; IIC0_Config.BusCtrl = __IIC_BusCtrl; __IIC_HardDefaultSet(CN_IIC_REGISTER_BADDR0); __IIC_IntConfig(cn_int_line_TWII,__IIC_ISR); if(NULL==IIC_BusAdd_r(&IIC0_Config,&s_IIC0_CB)) { return 0; } return 1; }
// ============================================================================= // 功能:IIC底层驱动的初始化,完成整个IIC总线的初始化,其主要工作如下: // 1.初始化总线控制块IIC_CB,回调函数和缓冲区的初始化赋值; // 2.默认的硬件初始化,如GPIO或IIC寄存器等; // 3.中断初始化,完成读写中断配置; // 4.调用IICBusAdd或IICBusAdd_r增加总线结点; // 参数:para,无具体意义 // 返回:1成功 0失败 // ============================================================================= bool_t IIC2_Init(void) { static u8 s_IIC2Buf[IIC2_BUF_LEN]; struct IIC_Param IIC2_Config; IIC2_Config.BusName = "IIC2"; //总线名称,如IIC2 IIC2_Config.IICBuf = (u8*)&s_IIC2Buf; //总线缓冲区指针 IIC2_Config.IICBufLen = IIC2_BUF_LEN; //总线缓冲区大小,字节 IIC2_Config.SpecificFlag = CN_IIC2_BASE; //指定标记,如IIC寄存器基址 IIC2_Config.pGenerateWriteStart = (WriteStartFunc)__IIC_GenerateWriteStart; //写过程启动 IIC2_Config.pGenerateReadStart = (ReadStartFunc)__IIC_GenerateReadStart;//读启动过程 IIC2_Config.pGenerateEnd = (GenerateEndFunc)__IIC_GenerateEnd;//结束通信 IIC2_Config.pBusCtrl = (IICBusCtrlFunc)__IIC_BusCtrl;//控制函数 IIC2_Config.pWriteReadPoll = (WriteReadPoll)__IIC_WriteReadPoll;//轮询或中断未开时使用 if(false==__IIC_GpioConfig(CN_IIC2)) return 0; __IIC_IntConfig(CN_INT_LINE_I2C2_EV,__IIC_ISR); if(NULL == IIC_BusAdd_s(&s_IIC2_CB,&IIC2_Config)) return 0; return 1; }