STM32F7 spi从机数据错位

不知道各位有没有遇上个这种情况,如果一开始主机的时钟不是很稳定有些乱,我用f7做从机数据就会一直错位下去(除非重新初始化SPI),而且错位很有规律。
后来看了网上说的,把CS改成硬中断,还是会出现这个问题。
各位大神有没有遇到过这种问题?
已邀请:

any012

赞同来自:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (HAL_GPIO_ReadPin(EN_3V3_GPIO_Port, EN_3V3_Pin) == GPIO_PIN_SET)
{
HAL_GPIO_TogglePin(ERR_GPIO_Port, ERR_Pin);
HAL_SPI_Receive_IT(&hspi2, (uint8_t *) spi2RecvDate, 0x09);
}
else
{
__HAL_SPI_DISABLE_IT(&hspi2, SPI_IT_RXNE);
__HAL_SPI_CLEAR_OVRFLAG(&hspi2); // HAL_GPIO_TogglePin(ERR_GPIO_Port, ERR_Pin);
}

}

我也遇到了相似问题。

SPI从设备接收数据,无论用中断模式还是DMA模式,如果SCLK引脚上有干扰,接收的数据就会移位,且会一直保持下去。

我奇怪的是,我这里有类似片选信号的,信号来以后,会重新调用SPI中断接收函数,按说应该重新配置接收的地址。但结果却是移位会一直保持。




@Mr.

赞同来自:

我现在就遇到你类似的问题,请问你解决了吗?
我反复的修改极性和相位,错位现象还是存在的

夏天——那年

赞同来自:

我也遇到了这个问题,大佬们解决了吗?


要回复问题请先登录注册