LIN specifications 标识符奇偶校验函数
typedef <span style="white-space:pre"> </span> char char8;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
typedef signed int int16;
typedef signed char int8;
uint8 lin_get_frame_id(uint8 id)
{
uint8 temp;
uint8 p0, p1;
p0 = ((id & (1<<0)) >> 0) ^ ((id & (1<<1)) >> 1) ^ ((id & (1<<2)) >> 2) ^ ((id & (1<<4)) >> 4); /* ((x & (1<<n)) >> n) 求某个整数中二进制位的某位的值 */
p1 = ~(((id & (1<<1)) >> 1) ^ ((id & (1<<3)) >>3 ) ^ ((id & (1<<4)) >> 4) ^ ((id & (1<<5)) >> 5));
temp = id | (p0<<6) | (p1<<7);
return temp;
}