#include"spi.h"
extern void SPI_Init(void)
{
SSP1STAT=0x00;//第一种通信模式 第一个上升沿采样
SSP1CON1=0x20;//spi模式 从动模式
}
extern void Write_Spi_Data(unsigned char data)
{
SSP1IF = 0;
SSP1BUF =data; //送需发送的数据
while(!SSP1IF); //等待完成
SSP1IF = 0;
}
extern uchar Read_Spi_Data(void)
{
uchar data;
Uart_Putstring("US");
SSP1IF = 0;
while(!SSP1IF); //等待完成
Uart_Putstring("UK");
data=SSP1BUF;
SSP1IF = 0;
return data;
}
while(!SSP1IF); //等待完成,程序停留在这个位置不再运行,急求高手。
急求:PIC16F1828单片机SPI接收程序,发送已经正常,接收不到数据,两个都是主机,求高手。
答案:2 悬赏:70 手机版
解决时间 2021-02-23 12:53
- 提问者网友:心如荒岛囚我终老
- 2021-02-22 12:12
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-02-22 12:44
看下SPI的通信协议就知道了,发送和接收都是先接收MSB位,每发送一位,数据就向左(最高位)移一位,这样当发送了一个字节后,也正好接收到了一个字节,不知这样说能否理解。。。
全部回答
- 1楼网友:大漠
- 2021-02-22 13:35
你好!
两个都是主机?
应该是一主一从。
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯