你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
查看全部评分
toofree 发表于 2018-6-21 09:21 有没有使用操作系统?用的硬件SPI还是软件IO模拟SPI?如果是硬件SPI,那么用的什么型号的芯片? 从图片看 ...
watercici 发表于 2018-6-20 13:57 统一回复,该问题没有解决!谢谢大家的意见,为了更好的解决问题,我在说的详细一些: 1:我的SPI是OLED和W ...
wenyangzeng 发表于 2018-6-21 09:53 SPI共用和OLED和W25Q16时,OLED和W25Q16应该有不同的片选信号,才不会出现冲突。楼主硬件和软件是否实现 ...
x5y4z3 发表于 2018-6-21 11:29 楼主的程序是否架构于 uC/OS 或啥 OS 之上?! 若是的话,要请留意关于任务等待号志 Semaphore 的使用,不 ...
watercici 发表于 2018-6-21 10:15 是不同的片选信号,OLED接在了SPI的NSS引脚(软件模式),W25Q16接在了普通IO上 ...
butterflyspring 发表于 2018-6-14 10:39 把调用函数发一下?我不知道你之前的贴叫什么..
TLLED 发表于 2018-6-14 14:10 可以单独写一个SPI通信程序,单独测试,其他端口不用,查找程序上那儿配置不对。 ...
从图片看,可能是软件模拟SPI吧?如果是软件模拟SPI,并且没有使用操作系统,那么有可能是某些中断造成的。
评分
查看全部评分
我用的是软件NSS,不带系统,我昨天给错误的地方定位了一下,发现是在我AD采集的过程中会有一个PWM波输出端的切换,我没有切换只是进行了初始化,(因为原来的函数PWM的初始化和切换打开是在一个函数里面,现在我把初始化和PWM切换输出放在了两个函数里面)。现在我把初始化函数去掉改成打开切换PWM波的输出就没有事情了。但是我仍然不知道为什么?
还有您说的中断造成的是什么意思,能详细的说一下吗?
下面是我的PWM波的初始化和打开函数。
SPI共用和OLED和W25Q16时,OLED和W25Q16应该有不同的片选信号,才不会出现冲突。楼主硬件和软件是否实现了?
评分
查看全部评分
是不同的片选信号,OLED接在了SPI的NSS引脚(软件模式),W25Q16接在了普通IO上
我建议你:1,先把其中一个CS拉高,单独去测试一个器件,然后调换过来再测试。2.如果上面都可以通过,那么把两个器件一起控制的时候一定要分开不同时间驱动,保证同时只有一个CS拉低。保证操作完一个器件之后把该CS拉高。
评分
查看全部评分
若是的话,要请留意关于任务等待号志 Semaphore 的使用,不然同一个 SPI 就被两个任务给占用了!
评分
查看全部评分
没有,我这是不带系统的
谢谢您!
应该不接到NSS上,与W25Q16同样另外接一个IO口,这样2个SPI片选条件才一致。
评分
查看全部评分
2.你到底是时钟紊乱还是发送数据紊乱,如果前者硬件及配置原因居多。如果后者,你的
SPI数据是怎样发送的,有无受到其它中断打断或干扰?
评分
查看全部评分
评分
查看全部评分
您好,问题算是解决了,但是我不知道原因,就是有一个和SPI无关的函数调用错了,就是上面帖子中PWM波的两个函数,本来应该用第二个,结果我写成了第一个,改了之后就没事了。
单独测试是没有问题的