⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm170sl_dirve.c

📁 TYPEA非接触卡读卡芯片FM1702spi驱动
💻 C
字号:
#include "define.h"
#include "shuoming.h"


/*
函数原型:void spi_clk_del(void)
功能:SPI时钟延时
*/
void spi_clk_del(void)
{
byte i;
for(i=0;i<1;i++);
//for(i=0;i<5;i++);
}

/*
函数原型:void spi_clk(void)
功能:SPI的时钟
*/
void spi_clk(void)
{
SCK=L;
spi_clk_del();
SCK=H;
spi_clk_del();
}

/*
函数原型:void spi_sedata(byte val)
功能:SPI主机向从机发送数据
*/
void spi_sedata(byte val)
{
byte i;
RSDATA=val;
for(i=0;i<8;i++)
	{
	MOSI=RSDATA_7;	
	spi_clk();
	RSDATA<<=1;
	}
}
/*
函数原型:byte spi_redata(void)
功能:SPI主机向从机接收数据,并发送最后一字节(00)
*/
byte spi_redata(void)
{
//static 
byte i;
MISO=1;
MOSI=0;//将输出给0
for(i=0;i<8;i++)
	{	
	spi_clk();
	RSDATA_0=MISO;
	if(i<7) RSDATA<<=1;
	}
return(RSDATA);
}
/*
函数原型:void spiwr_to_fm1702(byte address,byte len,byte *val)
功能:向FM1702写数据
*/
void spiwr_to_fm1702(byte address,byte val)
{
address<<=1;//将地址转移到BIT6~BIT1
address&=0x7e;//将BIT7和BIT0清0,指示为写操作
NSS=L;		//选通接口
spi_sedata(address);//写地址
spi_sedata(val);//写数据
NSS=H;		//禁能接口
}
/*
函数原型:byte spird_for_fm1702(byte address)
功能:从FM1702读数据(一个字节)
*/
byte spird_for_fm1702(byte address)
{
//static 
byte val;
address<<=1;//将地址转移到BIT6~BIT1
address&=0x7e;//将BIT7和BIT0清0,
address|=0x80;//将最高位置位,指示读操作
NSS=L;//选通接口
spi_sedata(address);//写地址
val=spi_redata();
NSS=H;
return(val);//读数据
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -