打印

请问SPI接收的时候是发送0XFF还是0X00

[复制链接]
楼主: 似水无痕
手机看帖
扫描二维码
随时随地手机跟帖
21
hys0401| | 2012-5-3 08:57 | 只看该作者 回帖奖励 |倒序浏览
CPOL:是时钟的有效极性。
CPOL=0,时钟空闲或无效状态时SCK保持低电平;
CPOL=1,时钟空闲或无效状态时SCK保持高电平;

CPHA:MCU或外设对数据采样时刻(相位)。
CPHA=0:数据在SCK起始沿改变,在SCK下一个边沿锁存;
CPHA=1:数据在SCK起始沿锁存,在SCK下一个边沿改变。

CPOL和CPHA合起来总共四种组合。

使用特权

评论回复
22
aozima| | 2012-5-3 09:20 | 只看该作者
大家认真看,楼主是问的,应该用:
value = spi_read_write(0xFF)
还是应该用
value = spi_read_write(0x00)

使用特权

评论回复
23
hys0401| | 2012-5-3 09:50 | 只看该作者
不发送数据的时候,SCK电平是不变,发什么数据呀?!

使用特权

评论回复
24
aozima| | 2012-5-3 10:06 | 只看该作者
一直是这样理解的,由于SPI通信要由主机产生sck时钟信号,只有存在时钟才从机才能把寄存器内数据发送出去,所以只要保证发送的数据从机不会产生动作(无效数据)即可。 ...
cumtljy 发表于 2012-5-2 19:32

整个贴子貌似就您在认真看,我也是这样理解的,但没有找到权威的出处。
目前整的SPI通用驱动框架的示例里面都是发的0xFF,因为看大多数用0xFF,及上拉电阻。

使用特权

评论回复
25
bald| | 2012-5-3 10:11 | 只看该作者
理论上讲任何代码都可以。不过为了避免误发指令,最好从发送对象指令集之外选择代码。

使用特权

评论回复
26
cnsztom| | 2012-5-3 17:28 | 只看该作者
谢谢:(

使用特权

评论回复
27
Tiandi789| | 2012-5-10 20:35 | 只看该作者
en

使用特权

评论回复
28
jone2875| | 2012-5-14 20:06 | 只看该作者
11111

使用特权

评论回复
29
jone2875| | 2012-5-14 20:06 | 只看该作者
11111

使用特权

评论回复
30
zhuxiu112| | 2012-5-15 22:21 | 只看该作者
不错

使用特权

评论回复
31
hn04| | 2012-5-22 08:37 | 只看该作者
个人理解:SPI接收的时候发送的数据只是为了产生一个读操作所需的时钟信号,应该跟发送的数据无关吧...

使用特权

评论回复
32
LIZHIQUANG| | 2012-5-24 12:03 | 只看该作者
哈哈哈啊

使用特权

评论回复
33
mercury2008| | 2012-5-28 23:24 | 只看该作者
你说的这个应该是ARM9吧,s3c2440吧。

使用特权

评论回复
34
望断云山| | 2012-5-29 09:10 | 只看该作者
本帖最后由 望断云山 于 2012-5-29 09:21 编辑

发什么数据都是无所谓的,这种问题也不需要什么权威的出处,spi读就是写,写就是读,既然目的是读,当然以不误写为最高原则。

使用特权

评论回复
35
hsuchen| | 2012-5-30 11:31 | 只看该作者
是啊,不明白

使用特权

评论回复
36
hotyong| | 2012-5-30 12:40 | 只看该作者
无所谓什么数据的。
mcuisp 发表于 2012-5-2 22:59

怎么可以无所谓什么数据呀..如果你发的数据刚好是一个命令的话,那接下来设备端就会对你这个命令响应啦..可能会导致通信紊乱呀..

使用特权

评论回复
37
www.txwuban.com| | 2012-6-20 23:53 | 只看该作者
欢迎来这里发帖

使用特权

评论回复
38
panj123| | 2012-6-22 15:35 | 只看该作者
en good

使用特权

评论回复
39
mdq123| | 2012-6-25 22:01 | 只看该作者
大家继续

使用特权

评论回复
40
darlin520| | 2012-6-25 23:17 | 只看该作者
怎么没人讨论了呢,我周围的同学用SPI时都是用模拟的时序,好像没人能用硬件来实现。。。。

使用特权

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

本版积分规则