Hhhhhhhh 发表于 2015-4-1 16:42:02

SPI时钟极性问题

CPOL设置为0,然后使能SPI,SCK一直为高。试了2片都这样,用的是ATMEGA64A,有遇到过的吗?

Hhhhhhhh 发表于 2015-4-1 19:21:09

{:3_48:}找到原因了...先要设置I/O口再去设置SPI就好了!求科普

steaven2000 发表于 2015-4-1 17:00:14

没遇到,你的程序有问题。

kebaojun305 发表于 2015-4-1 17:02:06

CPOL的设置 不影响SCK的输出的只是 数据的 输出和输入的时钟沿不一样。

Hhhhhhhh 发表于 2015-4-1 17:09:25

kebaojun305 发表于 2015-4-1 17:02
CPOL的设置 不影响SCK的输出的只是 数据的 输出和输入的时钟沿不一样。

主机模式SCK设置为输出。CPOL设置为低的时候SCK应该空闲时为低,但是我一使能SPI,SCK的引脚就为高这是正常的吗?

kebaojun305 发表于 2015-4-1 17:13:12

Hhhhhhhh 发表于 2015-4-1 17:09
主机模式SCK设置为输出。CPOL设置为低的时候SCK应该空闲时为低,但是我一使能SPI,SCK的引脚就为高这是正 ...

那你设置CPOL为高的时候是什么情况。

Hhhhhhhh 发表于 2015-4-1 17:16:22

kebaojun305 发表于 2015-4-1 17:13
那你设置CPOL为高的时候是什么情况。

SCK的引脚也是输出为高...

kebaojun305 发表于 2015-4-1 17:24:48

你是不是没有打开 SPI模块。

10xjzheng 发表于 2015-4-1 18:17:44

要发送的时候才会翻转,你试试置1看看是否是变低

10xjzheng 发表于 2015-4-1 18:18:12

而且是主模式时钟才会输出,不知道你问的是时钟没有翻转还是时钟是高

闷鱼 发表于 2015-4-1 18:31:08

时钟哪里不对吧

Hhhhhhhh 发表于 2015-4-1 18:40:03

kebaojun305 发表于 2015-4-1 17:24
你是不是没有打开 SPI模块。

SPI模块?是外设吗,这初始化就不对跟外设没关系吧。代码贴上来


                   ldi r16,0b11010000             ;SPI中断使能、SPI使能、主机00模式、4分频
                   out spcr,r16
                   clr r16
                   sts spsr,r16
                   sbi ddrb,ddb2                     ;MOSI设置为输出
                   sbi ddrb,ddb1                     ;SCK设置为输出
PB1(SCK)引脚是正常,但是一初始化SPI就一直为高

Hhhhhhhh 发表于 2015-4-1 18:41:39

10xjzheng 发表于 2015-4-1 18:18
而且是主模式时钟才会输出,不知道你问的是时钟没有翻转还是时钟是高

主机模式,CPOL设置为0但是空闲时SCK还是为高

10xjzheng 发表于 2015-4-1 19:01:47

没有用过,目测是没有配置好SPI外设

steaven2000 发表于 2015-4-1 19:13:40

Hhhhhhhh 发表于 2015-4-1 18:40
SPI模块?是外设吗,这初始化就不对跟外设没关系吧。代码贴上来




都啥年代了您还在汇编!

Hhhhhhhh 发表于 2015-4-1 19:17:03

steaven2000 发表于 2015-4-1 19:13
都啥年代了您还在汇编!

汇编很LOW吗?我不觉得

steaven2000 发表于 2015-4-1 19:19:34

Hhhhhhhh 发表于 2015-4-1 19:17
汇编很LOW吗?我不觉得

那就呵呵了。

Hhhhhhhh 发表于 2015-4-1 19:24:59

steaven2000 发表于 2015-4-1 19:19
那就呵呵了。

好走不送{:smile:}
页: [1]
查看完整版本: SPI时钟极性问题