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);
|