您好!
我在"TI TRF796x 中实施 ISO15693协议"伪代码和 TRF7970AEVM 示例代码中发现错误:
buf[3]=(char)(大小>> 8);//寄存器1D 的数据*
buf[4]=(char)(大小<< 4);//寄存器1E 的数据*
在寄存器1E 中将大小的4个 LSB 位保存为4个 MSB 位(没关系)、并将8个 MSB 位保存到寄存器1D、但必须将大小变量的位4到位11保存到寄存器1D。
例如:
uint16_t 大小= 0x0123;
buf[3]=(char)(大小>> 8); // buf[3]= 0x01
buf[4]=(char)(大小<< 4); // buf[4] = 0x30
因此、寄存器1D 和1E 中保存的长度为0x0013、但必须为0x0123。
要解决这个问题、您必须将4位右移而不是8位:
buf[3]=(char)(大小>>4); //寄存器1D 的数据*
此致、
Artyom Z