PIC单片机发送一个连续的32位数据
我准备发送一个16位的数据,为了防干扰,我在这个要发送的16位数据前再加一个已知的16位的数据,组成一个32位的数据,发送的时候先发送这个已知的16位数据再发送那个要发送...
我准备发送一个16位的数据,为了防干扰,我在这个要发送的16位数据前再加一个已知的16位的数据,组成一个32位的数据,发送的时候先发送这个已知的16位数据再发送那个要发送的16位数据。从单片机里设定一个和这个已知的16位数据一样的数据,当先接收到的16位数据和设定好的数据一致时才处理后接收的16位数据,否则不处理后接收到的16位数据,也就是认为发送的数据是错误的,是干扰信号。以上是我的思路。因为SPI通信一次只能发送8位的数据,我想知道怎么来传送这个32位数据。
展开
展开全部
IO口模拟SPI通讯,想发多少发多少,前16位数据时做校验的话,
如果你不能一次发16 32bit,为何不能分拆成单个字节?
如果你不能一次发16 32bit,为何不能分拆成单个字节?
追问
好主意!!!!可以试试!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsigned int iTemp1,iTemp2;
SSPBUF=(iTemp1>>8);
while(BF==0);
SSPBUF=iTemp1;
while(BF==0);
SSPBUF=(iTemp2>>8);
while(BF==0);
SSPBUF=iTemp2;
while(BF==0);
SSPBUF=(iTemp1>>8);
while(BF==0);
SSPBUF=iTemp1;
while(BF==0);
SSPBUF=(iTemp2>>8);
while(BF==0);
SSPBUF=iTemp2;
while(BF==0);
追问
略微明白了些,就是把这个32位数分成两个16位,然后再把16位的分成8位的,先发送高8位再发送低8位,发送4次。还想知道一个问题,怎么样能知道接收到数据的位数呢??我想知道这个是基于以下情况考虑的,本来也发送了一个对的32位数,前16位发完了以后,后16位只发送了9位或者是其它位数,这也是错误的,可是它还是认为这是一个正确的数据,如果能知道接收了几位就好了。有办法处理吗??
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询