• 大小: 12KB
    文件类型: .zip
    金币: 2
    下载: 4 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: STM32  FM1702  

资源简介

STM32单片机驱动射频芯片FM1702,C语言实现,包含C文件和H文件

资源截图

代码片段和文件信息



#include “stm32f10x.h“
#include “rsport.h“
#include “string.h“
#include “rsos.h“  
 
#include “FM1702.h“    



unsigned char tagtype[2];             /* 卡片标识字符 */ 
unsigned char   MF_CardType;    //读头发回的卡类型

unsigned char RevBuffer[40];         /* FM1702命令发送接收缓冲区 */
unsigned char UID2[8];             /* 序列号 */




static rst_gpio csgpio;
static rst_spi  pcdspi;
static rst_gpio rstgpio={00};



void FM1702_NotSelect(void)
{
//    GPIO_SetBits(FM1702_GPIOFM1702_CS_PIN);
    rs_setgpio(&csgpio);
}
void FM1702_Select(void)
{
//    GPIO_ResetBits(FM1702_GPIOFM1702_CS_PIN);   
    rs_resetgpio(&csgpio);
}
void FM1702_Reset(void)
{
rs_resetgpio(&csgpio);
rs_resetgpio(&csgpio);
rs_setgpio(&rstgpio);
rs_delayus(30000);
rs_resetgpio(&rstgpio);  
rs_delayus(10000);
rs_setgpio(&csgpio);
}

uint8_t SPI_SendByte(uint8_t byte)
{
    while(SPI_I2S_GetFlagStatus(pcdspi SPI_I2S_FLAG_TXE) == RESET);
    SPI_I2S_SendData(pcdspi byte);               
    while(SPI_I2S_GetFlagStatus(pcdspi SPI_I2S_FLAG_TXE) == RESET);
    while(SPI_I2S_GetFlagStatus(pcdspi SPI_I2S_FLAG_RXNE) == RESET);
    return SPI_I2S_ReceiveData(pcdspi);
}
uint8_t SPI_ReadByte(void)
{
    return (SPI_SendByte(0));
}


/****************************************************************/
/*名称: SPIRead */
/*功能: 该函数根据给定的地址读取FM1702SL的寄存器*/
/*输入: 寄存器地址 读出值存放首地址*/
/*输出: 寄存器值*/
/****************************************************************/
unsigned char SPIRead(unsigned char SpiAddress)
{
unsigned char rdata;

SpiAddress = SpiAddress << 1;
SpiAddress = SpiAddress | 0x80;
FM1702_Select();

//Send SpiAddress;
SPI_SendByte(SpiAddress);

//Receive data
rdata = SPI_SendByte(0);

FM1702_NotSelect();
return (rdata);
}

/****************************************************************/
/*名称: SPIWrite */
/*功能: 该函数根据给定的地址写入FM1702SL的寄存器*/
/*输入: 寄存器地址要写入的字节数 */
/*输出: N/A*/
/****************************************************************/
void SPIWrite(unsigned char SpiAddressunsigned char SpiData)
{
SpiAddress = SpiAddress << 1;
SpiAddress = SpiAddress & 0x7e;
FM1702_Select();

//Send SpiAddress
SPI_SendByte(SpiAddress);

// Send data;
SPI_SendByte(SpiData);

FM1702_NotSelect();
}
/****************************************************************/


/****************************************************************/
/*名称: Read_Card_Serial     */
/*功能: 该函数实现读取卡片序列号 */
/*输入: serial: 卡片序列号的存储首地址 */
/*输出: 读卡片产生的状态码 */
/****************************************************************/
unsigned char Read_Card_Serial(unsigned char *serial)
{
unsigned char status;

    status = Intern_Read_Card_Serial(serial);  //读取卡片序列号到serial  
    if(status != FM1702_OK) 
        status = Intern_Read_Card_Serial(serial);

return status;


unsigned char Card_Authentication(unsigned char *serialunsi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       10380  2013-07-08 14:51  FM1702.h
     文件       50858  2013-07-08 14:50  FM1702.c

评论

共有 条评论