cun
This commit is contained in:
@ -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++)
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user