diff --git a/apps/earphone/remote_control/RFID/reader/READER.c b/apps/earphone/remote_control/RFID/reader/READER.c index a7c8a14..2eb8db5 100644 --- a/apps/earphone/remote_control/RFID/reader/READER.c +++ b/apps/earphone/remote_control/RFID/reader/READER.c @@ -612,11 +612,17 @@ unsigned char ReaderV_Inventory(struct picc_v_struct *picc_v) SetCommand(CMD_TRANSCEIVE); rfid_delay_ms(10); GetReg(REG_ERROR, ®_data); - if ((reg_data & 0x0F) != 0) + if ((reg_data & 0x0F) != 0){ + xlog("(reg_data & 0x0F) != 0\n"); return FAIL; + } + GetReg(REG_FIFOLENGTH, ®_data); - if (reg_data != 10) + if (reg_data != 10){ + xlog("reg_data != 10\n"); return FAIL; + } + GetReg(REG_FIFODATA, &picc_v->RESPONSE); GetReg(REG_FIFODATA, ®_data); // DSFID for (i = 0; i < 8; i++) diff --git a/apps/earphone/remote_control/RFID/rfid_event.c b/apps/earphone/remote_control/RFID/rfid_event.c index 651587b..3b50d45 100644 --- a/apps/earphone/remote_control/RFID/rfid_event.c +++ b/apps/earphone/remote_control/RFID/rfid_event.c @@ -62,7 +62,7 @@ void TYPE_A_EVENT(void) result = ReaderA_CardActivate(&PICC_A); if (result != SUCCESS) { - // xlog("ReaderA_CardActivate_ERROR\r\n"); + xlog("ReaderA_CardActivate_ERROR\r\n"); SetCW(FUN_DISABLE); return; } diff --git a/apps/earphone/remote_control/RFID/rfid_hal.c b/apps/earphone/remote_control/RFID/rfid_hal.c index 0484f2d..9aefb63 100644 --- a/apps/earphone/remote_control/RFID/rfid_hal.c +++ b/apps/earphone/remote_control/RFID/rfid_hal.c @@ -84,6 +84,8 @@ unsigned char FM176XX_SoftReset(void){ unsigned char FM176XX_HardInit(void){ + gpio_set_direction(IO_PORTA_05,0); //nss + spi_open(SPI1); //初始化spi1:PC3、PC5 return SUCCESS; } @@ -105,7 +107,7 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){ addr_byte = (address << 1) | 0x01; // ---- 开始SPI事务 ---- - // gpio_set_output_value(FM176XX_CS_PIN, 0); // 拉低CS + gpio_direction_output(IO_PORTA_05,0); // 1. 发送地址字节,忽略接收到的数据 spi_send_byte(SPI1, addr_byte); @@ -114,7 +116,7 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){ *reg_data = spi_recv_byte(SPI1, &err); // ---- 结束SPI事务 ---- - // gpio_set_output_value(FM176XX_CS_PIN, 1); // 拉高CS + gpio_direction_output(IO_PORTA_05,1); if (err != 0) { xlog("GetReg error\n"); @@ -133,17 +135,22 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){ * 接口:SPI */ unsigned char SetReg(unsigned char address, unsigned char reg_data){ - unsigned char spi_data = (address << 1) & 0xFE; - - if(spi_send_byte(SPI1, spi_data) != 0){ - xlog("SetReg error 0\n"); - return FAIL; - } - if(spi_send_byte(SPI1, reg_data) != 0){ - xlog("SetReg error 1\n"); - return FAIL; + + unsigned char addr_byte = (address << 1) & 0xFE; // Bit0=0 for write + int err1, err2; + + gpio_direction_output(IO_PORTA_05,0); // <<-- CS拉低,开始事务 + + err1 = spi_send_byte(SPI1, addr_byte); // 发送地址 + err2 = spi_send_byte(SPI1, reg_data); // 发送数据 + + gpio_direction_output(IO_PORTA_05,1); // <<-- CS拉高,结束事务 + + if (err1 != 0 || err2 != 0) { + return FAIL; } return SUCCESS; + } diff --git a/apps/earphone/xtell_Sensor/xtell_handler.c b/apps/earphone/xtell_Sensor/xtell_handler.c index dc7daa4..2eedf0e 100644 --- a/apps/earphone/xtell_Sensor/xtell_handler.c +++ b/apps/earphone/xtell_Sensor/xtell_handler.c @@ -213,7 +213,7 @@ void le_user_app_event_handler(struct sys_event* event){ extern void i2c_scanner_probe(void); // i2c_scanner_probe(); extern void rfid_task_fuc(void); - create_process(&rfid_fuc_id,"rfid",NULL,rfid_task_fuc,1000); + create_process(&rfid_fuc_id,"rfid",NULL,rfid_task_fuc,2000); break; default: break;