我也在学习使用STC的单片机,对于SPI的问题也不是很了解,想跟你交流下,我的QQ:415645461
答案:1 悬赏:80 手机版
解决时间 2021-01-22 18:55
- 提问者网友:动次大次蹦擦擦
- 2021-01-21 18:31
我也在学习使用STC的单片机,对于SPI的问题也不是很了解,想跟你交流下,我的QQ:415645461
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-01-21 19:20
STC12C5A60S2的SPI为例
#define UINT8 unsigned char
sfr SPSTAT = 0xcd; //定义SPI状态寄存器
sfr SPCTL = 0xce;//定义SPI控制寄存器
sfr SPDAT = 0xcf;//定义SPI数据寄存器
void SPI_init(void)//初始化SPI
{
SPCTL=0xDC;
SPSTAT=0xC0;
}
UINT8 SD_spi_read()//硬件SPI读
{
SPSTAT=0xC0;//传输初始化
SPDAT=0xFF;
while(!(SPSTAT&0x80));//检测完成标志位
return SPDAT;
}
void SD_spi_write(UINT8 data x)//硬件SPI写
{
SPSTAT=0xC0;//传输初始化
SPDAT=x;
while(!(SPSTAT&0x80));//检测完成标志位
}
#define UINT8 unsigned char
sfr SPSTAT = 0xcd; //定义SPI状态寄存器
sfr SPCTL = 0xce;//定义SPI控制寄存器
sfr SPDAT = 0xcf;//定义SPI数据寄存器
void SPI_init(void)//初始化SPI
{
SPCTL=0xDC;
SPSTAT=0xC0;
}
UINT8 SD_spi_read()//硬件SPI读
{
SPSTAT=0xC0;//传输初始化
SPDAT=0xFF;
while(!(SPSTAT&0x80));//检测完成标志位
return SPDAT;
}
void SD_spi_write(UINT8 data x)//硬件SPI写
{
SPSTAT=0xC0;//传输初始化
SPDAT=x;
while(!(SPSTAT&0x80));//检测完成标志位
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯