📄 spi.c.bak
字号:
#define SPI_GLOBAL
#include "config.h"
unsigned char bdata gg;
sbit ggbit0 = gg^0;
sbit ggbit1 = gg^1;
sbit ggbit2 = gg^2;
sbit ggbit3 = gg^3;
sbit ggbit4 = gg^4;
sbit ggbit5 = gg^5;
sbit ggbit6 = gg^6;
sbit ggbit7 = gg^7;
void SPI_SendChar(INT8U ch)
{
INT8U data i=8;
while(i--)
{
SCK = 0;
if((ch & 0x80) == 0x80) SI = 1;
else SI = 0;
SCK = 1;
ch <<= 1;
}
}
INT8U SPI_ReadChar(void)
{
INT8U data i=8, ch=0;
while(i--)
{
ch <<= 1;
SCK = 1;
SCK = 0;
if(SO == 1) ch |= 0x01;
else ch &= 0xFE;
}
SCK = 1;
return ch;
}
INT8U SPI_ReadStatus(void)
{
INT8U data ch;
CS = 0;
SPI_SendChar(RDSR_INST);
JREAD_STATUS0:
ch = SPI_ReadChar();
if((ch & 0x01) == 1) goto JREAD_STATUS0;
CS = 1;
return ch;
}
void SPI_EnPro(void)
{
CS = 0;
SPI_SendChar(PREN_INST);
CS = 1;
SPI_ReadStatus();
}
void SPI_DisPro(void)
{
CS = 0;
SPI_SendChar(PRDI_INST);
CS = 1;
SPI_ReadStatus();
}
void SPI_WriteStatus(INT8U st)
{
SPI_EnPro();
CS = 0;
SPI_SendChar(PRSR_INST);
SPI_SendChar(st);
CS = 1;
SPI_ReadStatus();
}
void SPI_EraseBulk(void)
{
SPI_WriteStatus(0x00); //关闭NX25P40写保护
SPI_EnPro();
CS = 0;
SPI_SendChar(BULK_ERASE);
CS = 1;
SPI_ReadStatus();
}
void vProgramSPI(void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -