在执行从 RF 到 I2C 的 FTM 传输并读取 MB_LEN_Dyn 寄存器时,它总是报告比实际消息长度多 6 个字节(或在我的代码中增加 1 后为 7 个字节)的长度。
下面是 ISR 处理这个的代码。你能告诉我我做错了什么吗?
在移动端,我正在运行
NFC Tap 并使用 FTM - 数据传输屏幕。
尼尔。
- void IOCAF3_ISR(void) {
- unsigned char RX_BYTE,i;
- unsigned char length;
- RX_BYTE= ST25_readbyte(FTM_MEMORY,ST25_DYNAMIC_REG_IT_STS);
- if ( ( RX_BYTE & 0x20 ) == ( 0x20 ) )
- {
- RX_BYTE= ST25_readbyte(FTM_MEMORY,ST25_DYNAMIC_REG_MB_CTRL);
- if ( ( RX_BYTE & 0x85 ) == ( 0x85 ) )
- {
- length= ST25_readbyte(FTM_MEMORY,ST25_DYNAMIC_REG_MB_LEN);
- length++;
- printf("nLength %dnr",length);
- for (i=0;i {
- data_buffer = ST25_readbyte(FTM_MEMORY,ST25_MAILBOX_START+i);
- }
- for (i=0;i
- {
- printf("n %dnr",data_buffer);
- }
- }
- }
- IOCAFbits.IOCAF3 = 0;
- }