新手上路
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2015-10-11
- 在线时间
- 13 小时
|
5金钱
STM32F405的SPI3作为从机,使用DMA接收中断,接收中断代码如下:
void SPIx_DMA_RX_IRQHandler(void)
{
HAL_DMA_IRQHandler(SpiHandle.hdmarx);
if((aRxBuffer[0])==0x2211&&(aRxBuffer[1]) == 0x4433)
{
HAL_SPI_TransmitReceive_DMA(&SpiHandle, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer,2);
}
else
{
..
}
}
在不使用MDK的RTOS2前,接收正常,但是一但开启了RTOS2,没有创建任何线程,就会出现错帧,
#ifdef RTE_CMSIS_RTOS2
/* Initialize CMSIS-RTOS2 */
osKernelInitialize();
/* Start thread execution */
osKernelStart();
#endif
SPI3接收的数据每隔一段时间就出现错帧:
出现错帧的现象
正常数据是 0xaabb 0x8877,5Hz,但是频繁的出现 0xBF46将0xaabb给代替的现象
RTOS必须得使用, 求助各位高手....
|
|