STC8A8K64D4 Series Manual
u8 Lin_CheckPID(u8 id)
{
u8 returnpid ;
u8 P0 ;
u8 P1 ;
P0 = (((id)^(id>>1)^(id>>2)^(id>>4))&0x01)<<6;
P1 = ((~((id>>1)^(id>>3)^(id>>4)^(id>>5)))&0x01)<<7;
returnpid = id|P0|P1 ;
return returnpid ;
}
//========================================================================
// function: u8 LINCalcChecksum(u8 *dat)
// description: Calculate the checksum.
// parameters: The data transmitted by the data field.
// return: checksum.
// version: VER1.0
// date: 2020-12-2
// remark:
//========================================================================
static u8 LINCalcChecksum(u8 *dat)
{
u16 sum = 0;
u8 i;
for(I = 0; i < 8; i++)
{
sum += dat[i];
if(sum & 0xFF00)
{
sum = (sum & 0x00FF) + 1;
}
}
sum ^= 0x00FF;
return (u8)sum;
}
//========================================================================
// function: void Lin_SendBreak(void)
// description: Send a dominant interval signal.
// parameters: none.
// return: none.
// version: VER1.0
// date: 2020-12-2
// remark:
//========================================================================
void Lin_SendBreak(void)
{
SetTimer2Baudraye(Baudrate_Break);
UART2_TxByte(0);
SetTimer2Baudraye(Baudrate2);
}
//========================================================================
// function: void Lin_Send(u8 *puts)