📄 spi.c
字号:
#include <header.h>
#include <SPI.h>
unsigned char SPI_sen_dat[10];
unsigned char SPI_rev_dat[10];
unsigned char SPI_com_addr;
unsigned char SPI_send_len;
unsigned char SPI_rev_len;
unsigned char SPI_sended=0;
unsigned char SPI_reved=0;
void SPI_int(unsigned char SPI_SPCR,unsigned char SPI_SPI2X)
{
SPCR=SPI_SPCR;
/*
SPIE: 使能SPI中断
SPE: 使能SPI
DORD: 数据次序,置位时数据的LSB首先发送
MSTR: 主/从选择
CPOL: 时钟极性,置位表示空闲时SCK为高电平
CPHA: 时钟相位
SPR1, SPR0: SPI时钟速率选择
*/
SPSR = SPI_SPI2X & 0x01; //SPI2X,SPI的速度加倍
}
void SPI_inr()
{
}
void SPI_send_c(unsigned char c)
{
while( !(SPSR & (1<<SPIF)) ); //SPIF: SPI 中断标志
SPDR=c;
}
void SPI_send_dat(unsigned char *dat,unsigned char lng) //发送数据
{
unsigned char i;
for(i=0;i<lng;i++)
SPI_sen_dat[i]=dat[i];
for(i=0;i<lng;i++)
SPI_send_c(SPI_sen_dat[i]);
SPI_sended=1;
}
void SPI_set(unsigned char spi_ctrl_reg,unsigned char double_sel)
{
SPCR = (SPCR&0xc0)|(spi_ctrl_reg&0x3f);
SPSR = double_sel & 0x01;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -