spi.c
来自「ipod无线遥控发送端,可控制播放,暂停,音量,前进,后退.」· C语言 代码 · 共 81 行
C
81 行
#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 + =
减小字号Ctrl + -
显示快捷键?