打印
[其他ST产品]

736BSPI接收问题

[复制链接]
2245|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vvMvv|  楼主 | 2008-8-11 13:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用SPI接收数据,数据长度是变化的,在初始化的时候设置了RXFIFOsize为16,接收一次数据足够了,现在有个疑问,当数据长度达不到16个字节的时候,怎么知道这次数据接收已经完成了?我看了DATASHEET好像没有这方面的说明啊?
CLK MOSI在空闲的时候是低电平,请教下版主
沙发
香水城| | 2008-8-11 14:00 | 只看该作者

你应该约定好主从通信的数据量,而不能使用变长的数据包

这是你系统设计上的缺陷。

使用特权

评论回复
板凳
vvMvv|  楼主 | 2008-8-11 14:34 | 只看该作者

崩溃了

如果改用外部中断来接收,两个外部中断之间最小时间间隔是多少啊?

使用特权

评论回复
地板
香水城| | 2008-8-11 17:01 | 只看该作者

BSPI通信怎么又牵扯到外部中断?

楼主的逻辑好像有点混乱?

使用特权

评论回复
5
vvMvv|  楼主 | 2008-8-12 19:05 | 只看该作者

接收外部的数据改不了

外部的数据格式我改不了的,他发送的格式可以用SPI接收到,如果像你说的不能接收变长数据包,所以苦恼。如果不能用spi接收我想考虑下用外部中断来接收

使用特权

评论回复
6
香水城| | 2008-8-12 21:40 | 只看该作者

既然用外部中断都可以接受,还不如使用SPI一个字一个字地

不要用FIFO,每收到一个字(16位)中断一次,然后判断是否完成接收,或用TIMER进行超时控制。这样比用外部中断好多了。

使用特权

评论回复
7
grant_jx| | 2008-8-13 18:22 | 只看该作者

看一看收到的数据格式

看看一个数据帧最小的长度是多少,将FIFO深度设置为这个数值。FIFO满了就转移数据,转完了以后在继续查接受标志,用定时器设置超时检查。这样效率会高一些。


最简单的就是我在电话中与你说的,向普通的8bit MCU的UART接口一样,没有FIFO。收到一个转移一个。在自行根据数据做结构的拼装,时间虽然浪费点,但实施起来简单。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

16

帖子

0

粉丝