永发信息网

急求:PIC16F1828单片机SPI接收程序,发送已经正常,接收不到数据,两个都是主机,求高手。

答案:2  悬赏:70  手机版
解决时间 2021-02-23 12:53
  • 提问者网友:心如荒岛囚我终老
  • 2021-02-22 12:12
#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); //等待完成,程序停留在这个位置不再运行,急求高手。
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-02-22 12:44
看下SPI的通信协议就知道了,发送和接收都是先接收MSB位,每发送一位,数据就向左(最高位)移一位,这样当发送了一个字节后,也正好接收到了一个字节,不知这样说能否理解。。。
全部回答
  • 1楼网友:大漠
  • 2021-02-22 13:35
你好! 两个都是主机? 应该是一主一从。 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯