test函数实现奇偶校验位(最后一位)计算。
传入的data数据最后一位默认为0;
uint16_t test(uint16_t data)
{
uint8_t num = 0;
uint16_t result;
uint16_t temp;
temp = data;
//获取写入数据中1的个数,最后一位是奇偶校验位,传过来的永远是0
for(i = 0; i < 16; i++)
{
if(temp & 0x8000)
{
num += 1;
}
temp <<= 1;
}
temp = data;
//保证写入数据中1的个数为奇数
if((num % 2) == 0)
{
temp |= 0x0001;
}
return temp;
}