用STM8S的SPI功能,做了个从设备,没用到NSS管脚,采用的是软件管理。现在就出现了问题,当主MCU上电慢于STM8S芯片,在主MCU初始化前,CLK脚出现一个脉冲,然后就导致了STM8S的SPI以后的每一个接收数据均是错误的,因为SPI的数据是按照8个时钟计算。上电给了一个干扰脉冲后,就导致了8位脉冲的错误。
后来就人为让STM8S上电等待延时,等主MCU初始化完成后,再进入SPI状态,虽然这样可以解决表面问题,但如果在强干扰的情况下面,CLK引脚,出现一个干扰,岂不是也会导致STM8的SPI接收不正常么?
后来尝试读各种出错状态标志位,都不能解决这个问题。关闭SPI功能再开,居然也不能清除掉SPI错误的时钟计数。也是不能解决问题。然后只有采用主MCU一旦于STM8S通讯不上,那么就不停的发送0XFF,让STM8S无论收到多少个干扰脉冲,在多次SPI时钟侦后,总会正确接收到0XFF这个数据,一旦收到0XFF,就让STM8S强制看门狗溢出复位,重启。但这么做真的不是什么好的办法。
谁有没有好的办法,来解决这个问题? |
|