欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3653|回復: 1
收起左側

C8051F SPI接口讀寫c程序

[復制鏈接]
ID:321028 發表于 2018-5-3 10:33 | 顯示全部樓層 |閱讀模式
C8051F SPI接口讀寫c程序
#ifndef SPI_H
#define SPI_H
#define  WREN   0x06
#define  READ   0x03
#define  WRITE  0x02
#define  RDID   0x9F
#define  SNR    0xC3

void WriteSPI(uchar dat);
uchar ReadSPI(void);
uchar Read_Byte(ulong add);
void Write_Byte(ulong add,uchar dat);
void Write_String(ulong add,uchar *pStr,uint len);
void Read_String(ulong add,uchar *pStr,uint len);
#endif

//SPI.C程序

#include "C8051F120.h"
#include "main.h"
#include "spi.h"

void WriteSPI(uchar dat)
{
uchar SFR_PAGE_SAVE = SFRPAGE;
SFRPAGE = SPI0_PAGE;
SPIF = 0;
SPI0DAT = dat;
while(!SPIF);
SPIF = 0;
SFRPAGE = SFR_PAGE_SAVE;

}
uchar ReadSPI(void)
{
uchar dat=0;
uchar SFR_PAGE_SAVE = SFRPAGE;
SFRPAGE = SPI0_PAGE;

SPIF = 0;
SPI0DAT = dat;
while(!SPIF);
SPIF = 0;
dat = SPI0DAT;
SFRPAGE = SFR_PAGE_SAVE;
return dat;
}
void WriteEN(void)
{
CS = 0;
WriteSPI(WREN);
CS = 1;
}

uchar Read_Byte(ulong add)
{

  uchar dat = 0;
  uchar add2,add1,add0;
  CS = 0;
  add2 = (uchar)(add>>16);
  add1 = (uchar)(add>>8);
  add0 = (uchar) add;
  SFRPAGE =CONFIG_PAGE;

  WriteSPI(READ);

  WriteSPI(add2);
  WriteSPI(add1);
  WriteSPI(add0);

  dat = ReadSPI();
  SFRPAGE =CONFIG_PAGE;
  CS = 0;
  CS = 1;

  return dat;

}
void Write_Byte(ulong add,uchar dat)
{
  uint i;
  uchar add2,add1,add0;

  for(i=0;i<10;i++);
  add2 = (uchar)(add>>16);
  add1 = (uchar)(add>>8);
  add0 = (uchar) add;

  WriteEN();

  CS = 0;
  WriteSPI(WRITE);

  WriteSPI(add2);

  WriteSPI(add1);

  WriteSPI(add0);

  WriteSPI(dat);

  CS = 0;
  CS = 1;
  //CS = 1;
}



回復

使用道具 舉報

ID:420628 發表于 2021-9-25 16:48 | 顯示全部樓層
這是通過硬件spi口,不是軟件模擬spi,操作的嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表