watercici 发表于 2018-6-8 11:23:09

feixiang20 发表于 2018-6-8 00:54
我在看这么一个文章,不知对你有没有帮助
【SPI写入数据的时候记得读取,不然会一直读出0xFF!】
真的是越 ...

我看到过这个,但是我的问题不是这个,这个说的是你读取数据的时候也要发送数据,因为SPI通信是由主机发起的,所以在读数据的时候,也要发送数据。但是我现在的问题是发送数据的时候有问题,比如我发的指令是0X05,结果我发现我发的是0XFF,指令不对,地址也是这样没有发送对,所以导致读取的数据不正确。而且这种情况只在调试的时候发生。

watercici 发表于 2018-6-11 11:33:07

wolfgang2015 发表于 2018-6-7 11:40
A、是片选信号正常,时钟也正常,可是发送的数据(即发送给FLASH的指令)出错了
1、检查通信位数设置,是否 ...

您好,我想问一下,我在做SPI通信的时候,CS信号有时会出现自动拉高的情况,导致我的发送和读数都异常,这是为什么呢?

watercici 发表于 2018-6-11 11:33:29

す疯Ⅱ恒す 发表于 2018-6-7 13:38
你单步调试的时候出现的,因为你虽然暂停调试了,但是硬件SPI不一定停止,所以各种奇怪的事情都有,最好 ...

您好,我想问一下,我在做SPI通信的时候,CS信号有时会出现自动拉高的情况,导致我的发送和读数都异常,这是为什么呢?

す疯Ⅱ恒す 发表于 2018-6-11 13:55:03

watercici 发表于 2018-6-11 11:33
您好,我想问一下,我在做SPI通信的时候,CS信号有时会出现自动拉高的情况,导致我的发送和读数都异常, ...

CS信号应该作为主机的一方软件控制才对,这里应该用单片机控制,软件CS,应该该IO口的电平只需要检查代码即可。

watercici 发表于 2018-6-11 18:16:12

す疯Ⅱ恒す 发表于 2018-6-11 13:55
CS信号应该作为主机的一方软件控制才对,这里应该用单片机控制,软件CS,应该该IO口的电平只需要检查代码 ...

我就是按照您说的设置的,我的SPI通信挺奇怪的,有时候通信很正常,读写都没有问题,有时候通信异常,异常情况就是时钟异常,要不时钟脉冲数不够,随机,要不就是发送两个字节,发第一个字节的时候没事脉冲

watercici 发表于 2018-6-11 18:22:14

SPI通信有时候正常,有时候不正常。正常的时候读写都没有问题,不正常的情况下,要不就是时钟异常,时钟脉冲有时候不够8个,要不就是时钟正常,但是发送的数据都是0xff,就想没有发成功似的?奇怪了,也不知道是什么地方影响的,可是和SPI相关的程序基本没有改动啊?有没有遇到过这种情况的,我已经找了三天了都没有找到。因为出现问题的情况是随机的,问题也是随机的,有时候时钟正常,发送的数据也正常,可是会出现CS在发送数据的时候自动拉高的情况

watercici 发表于 2018-6-13 09:58:51

本帖最后由 watercici 于 2018-6-13 10:00 编辑

结贴:以上出现的总总SPI的问题,为什么出现的原因不清楚,不过解决的方法找到,我的MISO的配置出错了,原来是配置成了:复用推挽输出或者什么都不配置只说明引脚(前一种是网上看到的,后一种是课本中的例子)。现在改成了上拉输入,时序就正常了。
页: 1 [2]
查看完整版本: SPI通信中奇怪的问题,在线等,谢谢!