既然使用HAL庫沒問題,硬件方面應(yīng)該是沒啥問題了。配置方面,使用CubeMx的話,操作是一樣的,只是生成的工程代碼寫法有差別。從問題現(xiàn)象來看,感覺完全沒有正常通信,還不僅僅溢出的問題??梢钥纯词欠裼脩舸a哪里有問題,我這邊使用STM32F4的開發(fā)板,選擇SPI1自發(fā)自收是正常的。發(fā)送采用DMA方式,接收采用中斷方式。
我添加的用戶代碼,供參考:
LL_DMA_ConfigAddresses(DMAx, LL_DMA_STREAM, (uint32_t)&SPITXData0],(uint32_t) &(SPI1->DR),LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
LL_DMA_SetDataLength(DMAx, LL_DMA_STREAM, SIZE);
LL_DMA_EnableIT_TC(DMAx, LL_DMA_STREAM);
LL_SPI_EnableDMAReq_TX(SPI1);
LL_SPI_EnableIT_RXNE(SPI1);
LL_DMA_EnableStream(DMAx, LL_DMA_STREAM);
LL_SPI_Enable(SPI1);
根據(jù)RXNE事件在其中斷里進行數(shù)據(jù)接收:
SPIRXData[cnt++]=SPI1->DR;
如果中斷接收的話,中斷處理程序盡量簡潔點??梢韵葘?a class="article-link" target="_blank" href="/baike/497736.html">波特率放慢點。