keil封装lib库时,想把函数指针做参数传到lib库中,并在lib库中赋给另一个函数,使得在lib库中通用使用。下面是写的主要代码,不知道有什么问题?或者正确应该怎样做,请高手指点一下。
lib库中的函数接口和内容:
uint8_t(*SPIRead)(uint8_t addr);
void(*SPIWrite)(uint8_t addr,uint8_t Data);
uint16_t(*GetTimems)(void);
void FHSS_Init(uint8_t(*SPI_Read)(uint8_t),void(*SPI_Write)(uint8_t,uint8_t), uint16_t(*Get_Time_ms)())
{
SPIRead=SPI_Read;
SPIWrite=SPI_Write;
GetTimems=Get_Time_ms;
}
应用中调用代码:
/***********************************
**名字:SPI_Read
**功能:SPI读取
**入参:地址
**出参:数据
************************************/
uint8_t SPI_Read(uint8_t addr)
{
SPI_3_Write_Byte(addr|0x80);
return(SPI_3_Read_Byte());
}
/***********************************
**名字:Write_SPI
**功能:SPI写入
**入参:地址,数据
**出参:无
************************************/
void SPI_Write(uint8_t addr,uint8_t Data)
{
SPI_3_Write_Byte(addr&0x7F);
SPI_3_Write_Byte(Data);
CSB_H();
}
uint16_t Get_Time_ms(void)
{
return TimesCount;
}
FHSS_Init(SPI_Read,SPI_Write, Get_Time_ms);