void CanReadFifo(CAN_DstaDef *CAN)函数 读取的RX_BUG0加上RX_index++&3是什么意思
void CanReadFifo(CAN_DstaDef *CAN)函数 读取的RX_BUG0加上RX_index++&3是什么意思 首次计算RX_BUF0地址就加上了1好像不对,我的理解是RX_index=0;第一次运行后(RX_index++&3)结果为1😓从整个函数的理解是RX_index++&3计算结果应是0123再到0123的循环,但首次计算结果什么是0呢 (RX_index++&3)是使用RX_index自增前的数值跟3取与,也就是取RX_index的低2位数值(0~3)
展开来就是:
pdat = CanReadReg((u8)(RX_BUF0 + (RX_Index&3)));
RX_index++; pdat = CanReadReg((u8)(RX_BUF0 + (RX_Index&3)));
RX_index++;看这就明白了,基础不牢呀,谢谢你😊
页:
[1]