82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
|
|
#include "./rfid_hal.h"
|
|||
|
|
#include "gSensor/gSensor_manage.h"
|
|||
|
|
#include "./include/rfid_main.h"
|
|||
|
|
#include "./include/READER_REG.h"
|
|||
|
|
|
|||
|
|
#define INTERFACE_TYPE 0
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#if INTERFACE_TYPE == 0 //iic接口
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
IF2 IF0 ADDR
|
|||
|
|
0 0 0x28
|
|||
|
|
0 1 0x29
|
|||
|
|
1 0 0x2A
|
|||
|
|
1 1 0x2B
|
|||
|
|
*/
|
|||
|
|
#define FM176_7BIT_ADDR 0x28 //后两位地址由IF2、IF1决定
|
|||
|
|
#define FM176_READ_ADDR (FM176_7BIT_ADDR << 1)
|
|||
|
|
#define FM176_WRITE_ADDR ((FM176_7BIT_ADDR << 1) | 0x01)
|
|||
|
|
|
|||
|
|
|
|||
|
|
unsigned char FM176XX_HardInit(void){
|
|||
|
|
int ret = hw_iic_init(0);
|
|||
|
|
xlog("init iic result:%d\n", ret); //返回0成功
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 从FM176XX芯片读取一个字节的寄存器值。
|
|||
|
|
* @param address [in] 目标寄存器的地址。
|
|||
|
|
* @param reg_data [out] 指向用于存储读取数据的字节的指针。
|
|||
|
|
* @return 操作状态,SUCCESS表示成功。
|
|||
|
|
* @details
|
|||
|
|
* 接口:iic
|
|||
|
|
*/
|
|||
|
|
unsigned char GetReg(unsigned char address, unsigned char *reg_data){
|
|||
|
|
if(_gravity_sensor_get_ndata(FM176_READ_ADDR, address, reg_data, 1)){
|
|||
|
|
return SUCCESS;
|
|||
|
|
}else{
|
|||
|
|
return FAIL;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 向FM176XX芯片写入一个字节的寄存器值。
|
|||
|
|
* @param address [in] 目标寄存器的地址。
|
|||
|
|
* @param reg_data [in] 要写入的字节数据。
|
|||
|
|
* @return 操作状态,SUCCESS表示成功。
|
|||
|
|
* @details
|
|||
|
|
* 接口:iic
|
|||
|
|
*/
|
|||
|
|
unsigned char SetReg(unsigned char address, unsigned char reg_data){
|
|||
|
|
if(gravity_sensor_command(FM176_WRITE_ADDR, address, reg_data) == 0){
|
|||
|
|
return FAIL;
|
|||
|
|
}else{
|
|||
|
|
return SUCCESS;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 软件复位,命令:0x1F
|
|||
|
|
*
|
|||
|
|
* @return unsigned char
|
|||
|
|
*/
|
|||
|
|
unsigned char FM176XX_SoftReset(void){
|
|||
|
|
gravity_sensor_command(FM176_WRITE_ADDR,REG_COMMAND,0x1F);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#elif INTERFACE_TYPE == 1 //spi
|
|||
|
|
|
|||
|
|
#elif INTERFACE_TYPE == 2 //uart
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
void rfid_delay_ms(unsigned int ms){
|
|||
|
|
os_time_dly(ms/10);
|
|||
|
|
}
|