完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好…我有这个问题:CS信号不等到SPI缓冲区空了。在斯皮尔诺亚德拉耶.PNG,这就是我所拥有的…但是…我插入一个2MS延迟,我可以保持CS信号,直到SPI完成传输(其他图片)。我认为不应该是……SPI配置:我不知道是否也必须激活SPI中断信号,或者有什么我看不到的……有什么想法?
|
|
相关推荐
8个回答
|
|
基于寄存器名称,我猜这是一个PIC32。我不知道是哪一个?可能SPITBF在FIFO将数据传送到移位寄存器之后就变低了,而且远在实际的SPI移位完成之前。也许对SRMT或SPIBUSY位的轮询会更好?
|
|
|
|
SPI是一种交换协议。每个传输都伴随着一个同时接收。在事务结束时,SPIRBF标志将变为真。您需要读取SPI1BUF来清除它,即使您不需要数据。为什么代码中包含注释“Bit bang data out MSB first”?“BIT”具体指的是手动操作,而不是使用外围设备来做。
|
|
|
|
感谢信息…它是一个PIC24FJ128GB204…问题是外围设备,它使用SPI,但是它只是接收,不发送任何信息。我认为它是一个延迟,等待SPITBF然后添加延迟。但是当我发送许多数据时,有一些奇怪的延迟(16ms,1ms,…)…所以如果我想用SPI发送,有什么想法吗?
|
|
|
|
不,请再读一遍我的帖子。您必须使用SPIRBF。没有所谓的“SPI只发送”。SPI外围设备在交换期间总是接收“某物”。如果SDI管脚是高或低,那么您将接收0xFF或0x00,但是它仍然是“某物”。数据不相关,重要的是SPIRBF标记的定时。这就是告诉你交换发生的原因。
|
|
|
|
从Microchip下载:第18节。串行外围接口(SPI)这里没有提到2x16位寄存器,但是它有助于理解它。16位芯片中有32位SPI寄存器,低位和高位。
|
|
|
|
抱歉耽搁了……我做到了…只需发送和等待垃圾…感谢惠普
|
|
|
|
如前所述,SPI是一种交换协议。但是,根据如何使用它,只要您确实读取(并忽略)接收到的任何内容,就不需要“等待垃圾”,从而不会出现溢出情况。当你做阅读取决于你-你可能只是确保Tx方能够采取另一个价值,确保Rx方是明确的,设置发送你的价值,然后开始你的业务。当您想要发送下一个值时,然后重复该序列。要么在Rx端有一个中断,它只是读取寄存器并清除中断标志。
|
|
|
|
不是垃圾,它可能是来自奴隶的错误信息。
|
|
|
|
只有小组成员才能发言,加入小组>>
5162 浏览 9 评论
2000 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3172 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
731浏览 1评论
613浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
503浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
629浏览 0评论
527浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 11:04 , Processed in 1.302087 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号