完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,伙计们,我希望你们的顾问在从Pic尝试向主spi pici发送字节时防止从Pic溢出,我写了一个代码,其中包含一些命令,如果主spi试图发送字节,而我使用BF位而不使用中断来接收,则这些命令需要花费一段时间才能执行(1)SO所以很有可能丢失很多字节,所以我使用了中断,尽管在从图片中设置相同的发送和接收函数是保证从图片在传输途中不会尝试向它的SSPBUF写入字节的一种方法,从而解决了这个问题。使在中断内接收一个字节并发送一个字节处于单独的函数中,并且我在函数的存在中使用了一段时间(PORTA.B5==0)来使函数等待,以防ss位为0,这意味着一个字节正以它的方式从主设备传来或被处理,因此中断将发生。在从设备中接收到来的字节,然后主设备将从设备的ss位返回到1,然后在中断完成之后将恢复while的代码,然后它将发现ss是1而不是0,因此它将在while中输出,并将从设备图片要发送给mas的字节写入。ITSSSPBUF中的TER
|
|
相关推荐
17个回答
|
|
|
关于临时DataReceivedFlag,您是对的,谢谢您,但是为什么要说延迟应该在函数的开始处?
|
|
|
|
|
|
它能防止溢出吗?
|
|
|
|
|
|
在查看上传的代码片段时,我只看到可能导致溢出的东西。您可能已经错过了SPI传输的一个重要特性:没有流控制!!!!SPI从设备必须能够以指定的时钟速度写入和读取所有请求。要求SPI从设备指定SPI从属设备可以处理数据的最大时钟速度。
|
|
|
|
|
|
在查看上传的代码片段时,我只看到可能导致溢出的东西。您可能已经错过了SPI传输的一个重要特性:没有流控制!!!!SPI从设备必须能够以指定的时钟速度写入和读取所有请求。需要SPI从设备指定SPI从设备能够处理数据的最大时钟速度。您认为哪些东西会导致溢出?请问从设备必须指定最大时钟是什么意思?!!!SPI有他自己的时钟和他自己的硬件
|
|
|
|
|
|
我的意思是SPI从设备必须指定SPI主机可以用来时钟接口的最大SPI时钟速度。
|
|
|
|
|
|
我是说SPI从设备必须指定SPI主设备可以用来对接口进行计时的最大SPI时钟速度。先生,请注意,但是我仍然不能让你很好地SPI使用这个寄存器SSPCON1=0b00010010;//SSPEN=0,CKP=1,SSPM=0010(主Fosc/64)来确定他的时钟使用相同的va这个寄存器在从和主代码中,我用4MHZ晶体振荡器作为主和从时钟,你们在时钟上有什么问题?
|
|
|
|
|
|
你不能在《奴隶》中使用相同的值,因为这样会使它成为大师。你试图说奴隶具有相同的时钟设置,但这无关紧要,奴隶的时钟来自大师。这就是丹缺少的细节。你不能让一个Master运行得比Slave快很多。但是,对于你来说,更重要的是Master发送的每个字节之间的延迟,因为Slave在接收到每个字节之后需要时间,才能将下一个字节加载到SSPBUF寄存器中。埃莱第一。我怀疑这会更好,但我真的只是猜测,因为你只显示代码的片段。
|
|
|
|
|
|
还有你提到的流量控制。我不使用流量控制,我只是在从spi设备不能发送字节的障碍物周围玩耍,她必须等到主设备开始传输,所以我只从spi硬件的进/出端口使用一点来告诉主设备现在从设备有一个字节,请去并开始传输,因为不要使用流量控制
|
|
|
|
|
|
你刚才所说的是“流量控制”!
|
|
|
|
|
|
你不能在《奴隶》中使用相同的值,因为那样会使它成为大师。你试图说奴隶具有相同的时钟设置,但这无关紧要,奴隶的时钟来自大师。是的,我的意思是她具有相同的时钟。当然不是大师。你是对的,我知道这与你说的无关,因为SLaveSCON1寄存器中的时钟位是没有意义的。我只是把它们放在相同的位置,以便不像他们在数据表中所说的那样为这些位组合写一个保留值,但是我说也许丹看到了一些我看不见的东西。这就是丹缺少的细节。你不可能让一个主人比奴隶跑得快很多。但是,还有什么更重要的?对于你来说,就是Master发送的每个字节之间的延迟,因为Slave在接收到每个字节之后需要时间,才能将下一个字节加载到SSPBUF寄存器中。我怀疑这会更好,但我真的只是猜测,因为你只显示代码的片段。显然不是。我稍后想给从设备加20MHZ,给主设备加8MHZ,但是为了讨论起见,我认为倒置8MHZ和给从设备加20MHZ不是问题,因为主spi函数中的延迟会使时钟点变得不重要。
|
|
|
|
|
|
你刚才所说的是“流量控制”!好吧。那样做是不对的吗?会影响过程中的坏吗?
|
|
|
|
|
|
是的,只要发送一个字节,然后暂停,从机就可以处理它。如果连续发送两个(或更多)字节,那么从机的时钟速度就变得很重要。您可以在数据表的“电气规范”中看到这一点,其中当使用“连续接收”时,从时钟周期(Fcy)以某些速度术语出现。
|
|
|
|
|
|
你是说这部分吗?https://imgur.com/PcGXBT9TscH对于从时钟的最低1.25TCY+30必须保持高电平,例如,如果我使用4mhz,它的TCY在nsec=250nsec,如果我没有被误认为是从时钟,那么来自主时钟的sck应该发送高脉冲保持1.25*250+30nsec,以便从设备识别为高电平。伊格纳尔
|
|
|
|
|
|
我把你弄得好吗?
|
|
|
|
|
|
但是我们应该考虑一个重要因素,即来自主时钟的sck,它的时钟不仅取决于主时钟,还取决于SSPCON1值,因为您可以使sck时钟=主时钟超过64,例如,这将使1.25TCY+30条件得到满足和更多。
|
|
|
|
|
|
看看你是如何使用它的,你将比USPI更好地服务于SPI。
|
|
|
|
|
|
我在这个项目中使用了UART SPI GSM,所以我不得不使用SPI。这不是一个选项,相信我,如果我选择了我不会选择它
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
454 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3529 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
466浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 17:53 , Processed in 1.582478 second(s), Total 74, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2566