PIC单片机模拟SPI的问题;我用PIC16F873模拟SPI。硬件仿真数据已经传输成功,但是在硬件里自己跑就有问题了

unsignedchari;RC2=1;//CSRC3=0;//SCKnop();nop();RC2=0;//拉低开始读/////————————这是程序的一小段。我在网... unsigned char i;
RC2=1; //CS
RC3=0; //SCK
nop();
nop();
RC2=0;//拉低开始读 /////————————这是程序的一小段。我在网上看资料说PIC如果连续的运用按位输出的话就会导致错误。所以我怀疑我这个模拟SPI在仿真上好使 自己跑却不好使 跟这个有关 。有模拟过SPI的么用PIC 求指点。另外 我知道PIC有SPI通信 用自带的通信程序就不用了
展开
 我来答
jianghe706
2012-06-27 · TA获得超过5145个赞
知道大有可为答主
回答量:2213
采纳率:77%
帮助的人:809万
展开全部
完全可以用IO口模拟SPI、IIC和异步串行通信。
你的程序中:
RC2=1; //CS
C3=0; //SCK要改为: RC2=1; //CS
NOP();
RC3=0; //SCK
这是因为PIC单片机对端口操作时是按“读-修改-写”的顺序,这个说来有点复杂,可参阅参考资料。
还有,要根据通信对象的最大SPI速率来确定每一位的延时时间,即每位间用几个NOP()语句。

参考资料: 北航《PIC16系列单片机C程序设计与PROTEUS仿真》

百度网友fdb58eb79
2012-06-26 · TA获得超过106个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:82.1万
展开全部
对应时序,把延时的地方再加大,这是很多人忽略的。
追问
加大了也不好使啊 不知道怎么弄了
追答
把没加延时的地方加上延时试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式