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); SetCommand(CMD_TRANSCEIVE);
rfid_delay_ms(10); rfid_delay_ms(10);
GetReg(REG_ERROR, &reg_data); GetReg(REG_ERROR, &reg_data);
if ((reg_data & 0x0F) != 0) if ((reg_data & 0x0F) != 0){
xlog("(reg_data & 0x0F) != 0\n");
return FAIL; return FAIL;
}
GetReg(REG_FIFOLENGTH, &reg_data); GetReg(REG_FIFOLENGTH, &reg_data);
if (reg_data != 10) if (reg_data != 10){
xlog("reg_data != 10\n");
return FAIL; return FAIL;
}
GetReg(REG_FIFODATA, &picc_v->RESPONSE); GetReg(REG_FIFODATA, &picc_v->RESPONSE);
GetReg(REG_FIFODATA, &reg_data); // DSFID GetReg(REG_FIFODATA, &reg_data); // DSFID
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)

View File

@ -62,7 +62,7 @@ void TYPE_A_EVENT(void)
result = ReaderA_CardActivate(&PICC_A); result = ReaderA_CardActivate(&PICC_A);
if (result != SUCCESS) if (result != SUCCESS)
{ {
// xlog("ReaderA_CardActivate_ERROR\r\n"); xlog("ReaderA_CardActivate_ERROR\r\n");
SetCW(FUN_DISABLE); SetCW(FUN_DISABLE);
return; return;
} }

View File

@ -84,6 +84,8 @@ unsigned char FM176XX_SoftReset(void){
unsigned char FM176XX_HardInit(void){ unsigned char FM176XX_HardInit(void){
gpio_set_direction(IO_PORTA_05,0); //nss
spi_open(SPI1); //初始化spi1PC3、PC5 spi_open(SPI1); //初始化spi1PC3、PC5
return SUCCESS; return SUCCESS;
} }
@ -105,7 +107,7 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){
addr_byte = (address << 1) | 0x01; addr_byte = (address << 1) | 0x01;
// ---- 开始SPI事务 ---- // ---- 开始SPI事务 ----
// gpio_set_output_value(FM176XX_CS_PIN, 0); // 拉低CS gpio_direction_output(IO_PORTA_05,0);
// 1. 发送地址字节,忽略接收到的数据 // 1. 发送地址字节,忽略接收到的数据
spi_send_byte(SPI1, addr_byte); 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); *reg_data = spi_recv_byte(SPI1, &err);
// ---- 结束SPI事务 ---- // ---- 结束SPI事务 ----
// gpio_set_output_value(FM176XX_CS_PIN, 1); // 拉高CS gpio_direction_output(IO_PORTA_05,1);
if (err != 0) { if (err != 0) {
xlog("GetReg error\n"); xlog("GetReg error\n");
@ -133,17 +135,22 @@ unsigned char GetReg(unsigned char address, unsigned char *reg_data){
* 接口SPI * 接口SPI
*/ */
unsigned char SetReg(unsigned char address, unsigned char reg_data){ 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){ unsigned char addr_byte = (address << 1) & 0xFE; // Bit0=0 for write
xlog("SetReg error 0\n"); int err1, err2;
return FAIL;
} gpio_direction_output(IO_PORTA_05,0); // <<-- CS拉低开始事务
if(spi_send_byte(SPI1, reg_data) != 0){
xlog("SetReg error 1\n"); 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 FAIL;
} }
return SUCCESS; return SUCCESS;
} }

View File

@ -213,7 +213,7 @@ void le_user_app_event_handler(struct sys_event* event){
extern void i2c_scanner_probe(void); extern void i2c_scanner_probe(void);
// i2c_scanner_probe(); // i2c_scanner_probe();
extern void rfid_task_fuc(void); 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; break;
default: default:
break; break;