PIC单片机发送一个连续的32位数据

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式