📄 spi.c
字号:
#include "hal.h"
void SpiWriteBurstReg(BYTE addr, BYTE *buf, BYTE n)
{
CLR_CSN;
while (SOREAD);
SPDR = addr | WRITE_BURST;
SPI_WAIT();
for (BYTE i = 0; i < n; i++) {
SPDR = buf[i];
SPI_WAIT();
}
SET_CSN;
}
void SpiWriteReg(BYTE addr, BYTE value)
{
CLR_CSN;
while (SOREAD);
SPDR = addr;
SPI_WAIT();
SPDR = value;
SPI_WAIT();
SET_CSN;
}
void SpiStrobe(BYTE strobe)
{
CLR_CSN;
while (SOREAD);
SPDR = strobe;
SPI_WAIT();
SET_CSN;
}
BYTE SpiReadStatus(BYTE addr)
{
BYTE x;
CLR_CSN;
while (SOREAD);
SPDR = (addr | READ_BURST);
SPI_WAIT();
SPDR = 0;
SPI_WAIT();
x = SPDR;
SET_CSN;
return x;
}
BYTE SpiReadReg(BYTE addr)
{
BYTE x;
CLR_CSN;
while (SOREAD);
SPDR = (addr | READ_SINGLE);
SPI_WAIT();
SPDR = 0;
SPI_WAIT();
x = SPDR;
SET_CSN;
return x;
}
void SpiReadBurstReg(BYTE addr, BYTE *buf, BYTE n)
{
CLR_CSN;
while (SOREAD);
SPDR = (addr | READ_BURST);
SPI_WAIT();
for (BYTE i = 0; i < n; i++) {
SPDR = 0;
SPI_WAIT();
buf[i] = SPDR;
}
SET_CSN;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -