[程序源码]

spi驱动中SPI_MODE定义不解

[复制链接]
3210|3
手机看帖
扫描二维码
随时随地手机跟帖
yanghelovehuang|  楼主 | 2018-6-7 15:17 | 显示全部楼层 |阅读模式
本帖最后由 yanghelovehuang 于 2018-6-11 12:55 编辑

   最近在做spi方面的问题,其中spi的四种模式我有点搞不明白,SPI_MODE_0(0|0), SPI_MODE_1(0|SPI_CPHA) SPI_MODE_2(SPI_CPOL|0) SPI_MODE_3(SPI_CPOL|SPI_CPHA)()里面是什么意思啊,第二个模式,第三个模式在网上查的是:#define SPI_MODE_1 (0|SPI_CPHA)//SCLK空闲时为高电平,第一个时间沿采样
#define SPI_MODE_2 (SPI_CPOL|0)//SCLK空闲时为低电平,第二个时间沿采样 可是我觉得正好相反。
例如第二个模式,()里是0|SPI_CPHA应该是cpol=0 cpha=1,那应该是sclk空闲时为低电平,第二个时间沿采样,正好和网上的相反,哪个对啊,为什么啊,怎么通过()里的判断cpol,cpha的值啊?

相关帖子

yanghelovehuang|  楼主 | 2018-6-7 17:48 | 显示全部楼层
我自己觉得是我在网上看的这篇帖子错了, 我刚有看到一篇帖子 明确给出了模式二cpol=0 cpha=1 模式三spol=1 spha=0 而cpol=0时sclk空闲是处于低电平,cpha=1时第二时间沿采样 和我的看法一样 可以说楼上的帖子错了吧 https://blog.csdn.net/qqliyunpeng/article/details/53326226

使用特权

评论回复
airwill| | 2018-6-8 07:52 | 显示全部楼层
SPI_MODE_3(SPI_CPOL|0) 的写法肯定错了
SPI_CPHA, SPI_CPOL 有宏定义的, 这样写是可以接受的.

要习惯于这种宏方式,  有利于可读性吧

使用特权

评论回复
yanghelovehuang|  楼主 | 2018-6-11 12:59 | 显示全部楼层
airwill 发表于 2018-6-8 07:52
SPI_MODE_3(SPI_CPOL|0) 的写法肯定错了
SPI_CPHA, SPI_CPOL 有宏定义的, 这样写是可以接受的.

我的意思是模式2,模式3后面的注释是不是错的,模式2cpol=0, cpha=1应该是sclk空闲时处于低电平,第二时间沿采样, 而网上注释的是(粉红字体),同样模式3 cpol=1 cpha=0 应该是sclk空闲时处于高电平,第一时间沿采样,而他注释的是(分红字体),网上注释是错的吧。

使用特权

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

本版积分规则

156

主题

324

帖子

1

粉丝