RC522射频识别历程中,进行读操作时,传递的参数中,读出的数据是什么??
基于stm32f103的rc522射频识别,在读函数中,传递的第二个参数uint_t *pDate是什么?if ( ( cStatus == MI_OK ) && ( ulLen == 0x90 ) )是什么意思啊/*** @brief读取M1卡一块数据
* @paramucAddr,块地址
* @parampData,读出的数据,16字节
* @retval 状态值= MI_OK,成功
*/
char PcdRead ( uint8_t ucAddr, uint8_t * pData )
{
char cStatus;
uint8_t uc, ucComMF522Buf [ MAXRLEN ];
uint32_t ulLen;
ucComMF522Buf [ 0 ] = PICC_READ;
ucComMF522Buf [ 1 ] = ucAddr;
CalulateCRC ( ucComMF522Buf, 2, & ucComMF522Buf [ 2 ] );
cStatus = PcdComMF522 ( PCD_TRANSCEIVE,
ucComMF522Buf,
4,
ucComMF522Buf,
& ulLen );
if ( ( cStatus == MI_OK ) && ( ulLen == 0x90 ) )
{
for ( uc = 0; uc < 16; uc ++ )
* ( pData + uc ) = ucComMF522Buf [ uc ];
}
else
cStatus = MI_ERR;
return cStatus;
}
90是2进制的10010000,转10进制是144,除8是18个字节,正好是16个字节的信息和两个字节的crc冗余校验位。判断 ( cStatus == MI_OK )是判断cStatus = PcdComMF522 (。。。)的返回值,这个函数我理解为通讯协议函数,很多读卡写卡啥的子函数里,只要涉及pcb和picc的通信,都要调用。自己胡拽的,不喜勿喷 第二个参数uint_t *pDate是读取的数据存放的数组首地址,自己定义的
if ( ( cStatus == MI_OK ) && ( ulLen == 0x90 ) )
cStatus == MI_OK 表示返回读取的状态,=0正确,否侧错误
ulLen == 0x90是指返回数据的位长度
页:
[1]