我正在尝试使用中断在SPI上发送可变大小的字节数组 . 该系统由两个核STM32L432板组成 . 发送器板工作正常,但我遇到接收器板问题 . 具体来说,我注意到通常会删除一些字节 . 除了CubeMX提供的默认初始化之外,我的init函数中还有以下设置:
// Trigger RXNE when the FIFO is 1/4 full
LL_SPI_SetRxFIFOThreshold(sw.spi_sw2pc,LL_SPI_RX_FIFO_TH_QUARTER);
// Enable RXNE interrupt
LL_SPI_EnableIT_RXNE(sw.spi_sw2pc);
// Enable SPI
if((SPI3->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE)
{
// If disabled, I enable it
SET_BIT(sw.spi_sw2pc->CR1, SPI_CR1_SPE);
}
SPI设置为10 Mbit / s . 可以说通讯速度太快了吗?
以下是IRQ处理程序和回调 .
IRQ handler
void SPI3_IRQHandler(void)
{
/* USER CODE BEGIN SPI3_IRQn 0 */
/* Check RXNE flag value in ISR register */
if(LL_SPI_IsActiveFlag_RXNE(SPI3))
{
/* Call function Slave Reception Callback */
SW_rx_callback();