关于用F4的SPI写LD3320程序的时序问题

2019-07-20 02:31发布

搞了一天,发现移植官方的程序一直读LD_ReadReg(0x35)LD_ReadReg(0x1b)
LD_ReadReg(0xb3)
这几个寄存器都得到的是0,一直卡在LD_Check_ASRBusyFlag_b2()这个函数中的LD_ReadReg(0xb2)的值一直也是0,为繁忙
应该是时序问题导致的读写寄存器都出错,但是查了半天没查出来哪里的时序错误,官方源码是F1的,要移植到F4,不清楚两个关于SPI有什么注意的地方,有空的大神麻烦帮比较一下两者的初始化,要是有已经做过F4的LD3320,指点一下小的吧。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
142zjb
1楼-- · 2019-07-21 07:47
换了一个全新的F4板,发现程序直接卡死在我移植程序SPI的初始化中, 因为WR的IO口初始化和SPI无关(但是F1官方源码那里是放在和SPI初始化一起的),我将程序对WR初始化移到了GPIO初始化那里,发现居然读写寄存器居然终于成功了,虽然整个识别没进入中断,这个后话,明天再研究。
下面总结一下,
1,经过这个操作,我发现F4对SPI初始化居然会因为在函数里对其他IO口初始化就影响了时序。。。。看起来完全不科学啊。
2,我再试了其他旧的F4板,发现就同一个程序,读写寄存器还是不行,电压不稳?电源适配器也接上了,但是还是不稳,是不是用久了板子对时序影响会很大啊,这个问题返修能解决吗?大概是晶振还是哪里的问题。
3,我用那旧的F4板,去下载原子“实验25 SPI实验”,完全没有问题,难道对这个LD3320模块特别严格吗?
@正点原子
上述类似的问题不知道有没有其他人遇到过,原子哥,这个如果对SPI时序真的很严格,只能新板才能实现,那我这个旧板返厂涉及到哪部分重新维修就可以正常使用回呢?
142zjb
2楼-- · 2019-07-21 07:48
新板大约是17年9月份实验室统一购买的(背板写的是“Explorer STM32F4 BOARD V2.6”),旧板是我16年7月买的(背板写的是“Explorer STM32F4 BOARD V2.4”),这两个板有过什么小改动吗?
正点原子
3楼-- · 2019-07-21 09:06
 精彩回答 2  元偷偷看……
142zjb
4楼-- · 2019-07-21 12:30
正点原子 发表于 2018-3-17 01:31
没什么太大变化,原理图是一样的

那我的问题会出在哪?用久了MCU对时序的处理没有那么精准?还是晶振或别的什么问题?
142zjb
5楼-- · 2019-07-21 14:58
 精彩回答 2  元偷偷看……
k60ads
6楼-- · 2019-07-21 16:20
 精彩回答 2  元偷偷看……

一周热门 更多>