?? fm170sl_dirve.c
字號:
#include "define.h"
#include "shuoming.h"
/*
函數(shù)原型: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++);
}
/*
函數(shù)原型:void spi_clk(void)
功能:SPI的時鐘
*/
void spi_clk(void)
{
SCK=L;
spi_clk_del();
SCK=H;
spi_clk_del();
}
/*
函數(shù)原型:void spi_sedata(byte val)
功能:SPI主機向從機發(fā)送數(shù)據(jù)
*/
void spi_sedata(byte val)
{
byte i;
RSDATA=val;
for(i=0;i<8;i++)
{
MOSI=RSDATA_7;
spi_clk();
RSDATA<<=1;
}
}
/*
函數(shù)原型:byte spi_redata(void)
功能:SPI主機向從機接收數(shù)據(jù),并發(fā)送最后一字節(jié)(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);
}
/*
函數(shù)原型:void spiwr_to_fm1702(byte address,byte len,byte *val)
功能:向FM1702寫數(shù)據(jù)
*/
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);//寫數(shù)據(jù)
NSS=H; //禁能接口
}
/*
函數(shù)原型:byte spird_for_fm1702(byte address)
功能:從FM1702讀數(shù)據(jù)(一個字節(jié))
*/
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);//讀數(shù)據(jù)
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -