先给大佬们交代一下这个项目中我了解的关于spi的内容、本人碰到的问题的起因经过以及现在卡住的问题:
这个项目中用到了一个单片机和一个cpu,单片机用来检测按键、用串口通信接收几个传感器数据,然后通过spi发送这些从串口来的数据以及按键状态到cpu。
单片机作slave,多一根引脚是用作ready脚,拉高告诉主机cpu这边的spi准备好了,然后主机拉低nss脚之后建立通信。
问题的来源是碰到某一个电压的问题,需要在主机cpu掉电的情况下,把spi的ready脚以及nss脚状态更改,改完引脚之后那个电压问题的bug解掉了。
主机上电的时候之后我在做上电操作之前对spi的这两个引脚模式做了恢复,上电后主机也能正确接收到数据,但是很卡顿。按键反应也变慢了,应该是spi的传输速率变慢了。
------------------------------------------------------
这里想咨询的就是怎么样在改了引脚状态之后完美的恢复spi的通信。
-------------------------------------------------------
另外我自己在进行尝试的时候碰到了让我摸不着头脑的怪事。
我尝试将spi的初始化函数重新调用一遍,就是恢复引脚模式之后的时候,deinit(&spi)和init(&spi)一下,结果导致无法与主机正常通信。赶紧回退版本。但是奇怪的事情出现了......回退到我没有做更改的版本之后仍然无法正常通信。
------------------------------------------------------
另外想问的就是这种情况下是stm32有什么保存配置的功能或者某种存储设备
又或者我是不是该考虑主机cpu在spi通讯中所做的操作,比如是不是保存了与从机的连接之类的
------------------------------------------------------
请各路大神指点迷津!!