完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我使用PIC24FJ128GA010,我想测试SPI通信。在我的设备上:-SPI1是主-SPI2是从机-激活增强的缓冲区-当接收缓冲区中的日期可用时中断发生d缓冲区SPIxBUF:-read1_rx=SPI1BUF;在SPI1中断-read2_rx=SPI2BUF;在SPI2中断;我的主要例程是:-.500ms-display read1_rx-display read2_rx-SPI1BUF=cmpt1++;-.3ms-SPI2BUF=cmpt2+。但是我想模拟一个奴隶,他在每一个转移都没有东西要发送。所以我修改我的主例程如下:-delay 500ms-display read1_rx-display read2_rx-SPI1BUF=cmpt1+;-delay 3ms-如果cmpt1==3{SPI2BUF=cmpt2+;cmpt1=0;}我所期望的是:当cmpt1==0、1、2或3时,SPI2RX是空的,所以从SPI2到SPI的值是空的。0、0、1、0、0、0、2、0、0、0 3……这是SPI2的第一次转移。但是,当SPI2没有要发送的内容时,SPI1会收到一些消息(参见下文,其中cmpt2在18处初始化):Display2:0 0 0 18 0 0 0 0 0 0 0 18 0 18.…0,0,25,18,18,26,19,19,27,20,20,28……值在哪里…来自何方?谢谢你帮助我…
|
|
相关推荐
6个回答
|
|
如果您在FIFO中没有存储任何数据时通过读取来隐藏缓冲区,我的经验是它在FIFO中的那些点重复了先前的数据。然后,您必须在正确的字节数/字之前再次返回它。你必须避免它或状态标志/计数将是错误的。
|
|
|
|
一般来说,使用延迟来确定SPI交换何时完成是一个坏主意。有一些状态标志告诉您Tx缓冲区是空的(或者在增强模式下有其他值的空间)或者Rx缓冲区是满的(或者在增强模式下至少有一个值可以读取)。
|
|
|
|
你好,谢谢你们两个人的回答(苏珊,我不知道你是否提醒我,但是你在一个RS232主题上帮助我)@克里斯:实际上这种行为似乎可以解释我的观察。但是我仍然有一个问题:接收0x0000(或者来自SPI模块的其他东西,没有东西要发送)与接收任何东西有什么区别?SPI只是在每个CLK边缘采样它的SDI线。因此,我预料它的FIFO会被一些东西填充,但仍然不是空的……我尝试了以下测试:在主循环之前,我用很少的值填充SPI2BUF。在主循环中,我从未在这个缓冲区中连接任何东西(但是在SPI1中断的每次传输之后,我读取SPI1RX缓冲区),所以我多次低于SPI1RXBUF……但是我写的第一个值再也不会出现了!为什么?@Susan:我用一个延迟来模仿——一个每100ms就有一些话要说的Salve——一个奴隶巫师没有那么多话要说……对于中断,我不明白你们在谈论什么样的标志。每次转帐后,我进入一个中断。我确实显示了这个转移的结果。问题是,正如克里斯所说,存储在SPI1 FIFO中的数据不像预期的那样是0x000。
|
|
|
|
克里斯,我刚刚结束我的跑步训练…我想了想你的答案,明白你提到的底线不是针对SPI1,而是针对SPI2,当移位寄存器读取SPI2RX并将其传输给SDO时。
|
|
|
|
是的,就是这样。如果从SPI被启用,并且您在没有预加载FIFO的情况下给它时钟,那么它将从FIFO中获取一个旧值-该值将存储在如果您在之前加载了一个新值(8次传输之前)时已经被覆盖的位置。或者在时钟开始之前安排另一个信号加载它。
|
|
|
|
很清楚…当我有问题时,世界上某个地方有人有解决办法;)所以,我结束这个话题(如果我找到正确的按钮…)
|
|
|
|
只有小组成员才能发言,加入小组>>
4823 浏览 9 评论
1828 浏览 8 评论
1747 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
2951 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2059 浏览 5 评论
452浏览 1评论
1107浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
355浏览 0评论
260浏览 0评论
LAN9252使用SQI通信,进行数字复位后读BYTE_TEST异常
1786浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 14:15 , Processed in 1.187000 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号