你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
toofree 发表于 2018-6-21 09:21 有没有使用操作系统?用的硬件SPI还是软件IO模拟SPI?如果是硬件SPI,那么用的什么型号的芯片? 从图片看 ...
æ¶éç´ä¹±
butterflyspring 发表于 2018-6-14 10:39 把调用函数发一下?我不知道你之前的贴叫什么..
查看全部评分
zero99 发表于 2018-6-14 10:48 楼主,你说的是这个吗 SPI通信中奇怪的问题,在线等,谢谢!
toofree 发表于 2018-6-14 10:53 楼主,你想说明什么? 没有工程代码,怎么知道你什么问题,我从没出过这问题。 以前只在IO模拟SPI时出过问 ...
watercici 发表于 2018-6-14 11:00 主要是整个工程代码是公司的不方便贴,局部SPI的代码,我查看了好几遍,我觉得从基本配置到读写传输都没 ...
toofree 发表于 2018-6-14 11:05 只能告诉你,硬件SPI在一个传送周期内,是不会被打断的。除非出错。既然你都认为SPI代码没问题了,而是其 ...
TLLED 发表于 2018-6-14 14:10 可以单独写一个SPI通信程序,单独测试,其他端口不用,查找程序上那儿配置不对。 ...
我用的是软件NSS,不带系统,我昨天给错误的地方定位了一下,发现是在我AD采集的过程中会有一个PWM波输出端的切换,我没有切换只是进行了初始化,(因为原来的函数PWM的初始化和切换打开是在一个函数里面,现在我把初始化和PWM切换输出放在了两个函数里面)。现在我把初始化函数去掉改成打开切换PWM波的输出就没有事情了。但是我仍然不知道为什么?
还有您说的中断造成的是什么意思,能详细的说一下吗?
下面是我的PWM波的初始化和打开函数。
统一回复,该问题没有解决!谢谢大家的意见,为了更好的解决问题,我在说的详细一些:
1:我的SPI是OLED和W25Q16共用一个SPI;
2:单独调试的时候SPI通信成功;但是放在程序里面会出问题;
3:目前初始化的时候会有OLED显示和FLASH是否是首次使用的判断,此时二者的时序是正常的
4:但是进入主循环,先进行AD采集,数据处理判断,然后OLED显示,将测试数据写入FLASH,此时二者的SPI时序开始异常,时钟紊乱。
我知道大家不好定位,但是我希望大家给我看看,出现这种情况可能是什么原因造成的,我好有思路,自己在程序中定位。
谢谢!
æ¶éç´ä¹±
调用函数您指的是哪些,是SPI的基本函数和初始化配置函数吗?
我的这个问题就是随机出现的,SPI通信有正常的时候。
就是不知道是什么其他的地方影响了SPI,一开始以为是中断,可是在发送数据前把中断关掉也不行。
楼主,你说的是这个吗
SPI通信中奇怪的问题,在线等,谢谢!
https://www.stmcu.org.cn/module/forum/thread-616184-1-1.html
没有工程代码,怎么知道你什么问题,我从没出过这问题。
以前只在IO模拟SPI时出过问题,那时因为在两个IO操作之间没有加延时,STM32又是流水操作,导致了看似指令是顺序的,执行起来就不见得谁先谁后了。
评分
查看全部评分
是的。您遇到过吗?
主要是整个工程代码是公司的不方便贴,局部SPI的代码,我查看了好几遍,我觉得从基本配置到读写传输都没有问题,而且他有通信成功的时候。。所以我就是想知道,出现时钟紊乱,可能是哪些机制造成的,我认为应该不是SPI代码的问题,可能是程序中的其他地方影响,需要大家给个思路,我自己查看。
只能告诉你,硬件SPI在一个传送周期内,是不会被打断的。除非出错。既然你都认为SPI代码没问题了,而是其它代码出的问题。没有代码的情况下,如何分析。
好吧,还是谢谢您。
评分
查看全部评分
嗯呢,好的,谢谢。
评分
查看全部评分
你看看是不是外部信号影响。有没有可能是硬件干扰问题。
你要排除软件问题也简单,就找一个SPI的例程,别的啥也不跑,再测测波形。
评分
查看全部评分