This commit is contained in:
lmx
2025-11-25 16:22:28 +08:00
parent fb12a84d2c
commit 51788e4b88
4 changed files with 28 additions and 15 deletions

View File

@ -612,11 +612,17 @@ unsigned char ReaderV_Inventory(struct picc_v_struct *picc_v)
SetCommand(CMD_TRANSCEIVE);
rfid_delay_ms(10);
GetReg(REG_ERROR, &reg_data);
if ((reg_data & 0x0F) != 0)
if ((reg_data & 0x0F) != 0){
xlog("(reg_data & 0x0F) != 0\n");
return FAIL;
}
GetReg(REG_FIFOLENGTH, &reg_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, &reg_data); // DSFID
for (i = 0; i < 8; i++)

View File

@ -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;
}

View File

@ -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); //初始化spi1PC3、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");
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;
}

View File

@ -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;