完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,论坛上的第一篇文章,我很难使用PIC18F45的SPI功能。我用PIC作为奴隶,ARDUNO作为一个主。在数据表中,加载SSPBUF的过程被作为(我的解释):1。检查SSPIF=02。读取SSPBUF,即TEMP= SSPBUF3。编写SSPBUF,即SSPBUF= ByTeTyixWANTAtiOTHOSDENT4。等待中断标志被设置,即当()!SSPIF)5。清晰的SSPIFThis在数据表中是非常直接的,所以我在代码中实现了它,但是它没有工作。所以,Q.No.1:为什么它不能工作?我试着去推理,但失败了。在试错阶段,我替换了。(同时)BF)一切都有效。即使没有阅读第四步后的SSPBUF来清除BF。这是我的第2号:即使没有阅读SSPBUF,我的代码是如何工作的?因为它要工作,所以每次发送字符之前都需要清除BF。我没有在代码中看到SSPBUF,在这之后,我完全跳过了第四步和第五步,得到了与“同时”的完全相同的结果。SSPIF的意思是,SSPIF总是因为某种原因而总是1,即使我每次轮询时都清除它。这是我无法解答的第三个问题。到了最后,我能够成功地发送和接收数据,但没有答案,我为什么在这些情况下失败。代码解释:1。ARDUINO从串行监视器接收一个字节。它将这个字节发送到PIC UC3。PIC读取字节,如果不是空,则将其显示在LCD4上。取决于字节中的数据,SSPBUF是LoADD5。ARDUINO发送0x00 3次来接收来自PIC的数据,并将其显示在串行监视器上。1,ARDUINO接收一个2,它接收两个和3个或其他任何东西,它接收!!!!即1:ON2:TWO3:!!!!这是完美的,当我使用BF-当我尝试使用SSPIFE结果我们如下:1!!2:哦!3!!!!如果我把这4条线全部删除,同样的事情也会发生。对不起,这是一个很长的帖子,但是我无法解释我的问题而不需要仔细考虑我的思维过程。不过,我觉得我还没有给出关于这个问题的足够细节。希望有人通过整个帖子,消除我的疑虑。同时,我会尝试在代码中添加“读取SSPBUF”行。
以上来自于百度翻译 以下为原文 Hello everyone, First post on this forum |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1123浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:58 , Processed in 2.828266 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2138