#typedef unsigned char MS_U8;
MS_BOOL WriteSingleByte(MS_U8 u8BusNumSlaveID, MS_U8 REG_ADDR1, MS_U8 REG_ADDR2, MS_U8 CMD_DATA)
{
UNUSED(u8BusNumSlaveID);
MS_U8 addr[2]={0,0};
addr[0]=REG_ADDR1;
addr[1]=REG_ADDR2;
return MSrv_Control::GetInstance()->WriteBytesToI2C(I2CDevice,2,addr,1,&CMD_DATA);
}
main(void)
{
MS_U8 u8dummy=0x00;
MS_U8 ret=0;
ret|=WriteSingleByte(u8BusNumSlaveID,0x00,0x00,u8dummy);
ret|=TWriteSingleByte(u8BusNumSlaveID,0x00,0x01,0x55);
}
编译时,ret|=TWriteSingleByte(u8BusNumSlaveID,0x00,0x00,0x55);产生编译错误:
error: call of overloaded 'WriteSingleByte(MS_U8&, int, int, int)' is ambiguous
compilation terminated due to -Wfatal-errors.
解决办法:
ret|=TWriteSingleByte(u8BusNumSlaveID,0x00,0x00,(MS_U8 )0x55);