一、写寄存器多个位
方法一
u8 mask = (0xFF << (bitStart + 1)) | 0xFF >> ((8 - bitStart) + length - 1);
data <<= (8 - length);
data >>= (7 - bitStart);
b &= mask;
b |= data;
方法二
u8 mask = ((1 << length) - 1) << (bitStart - length + 1);
data <<= (bitStart - length + 1);
data &= mask;
b &= ~(mask);
b |= data;
二、读寄存器多个位
u8 mask = ((1 << length) - 1) << (bitStart - length + 1);
b &= mask;
b >>= (bitStart - length + 1);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)