勇敢的心-SZ 发表于 2019-4-6 12:37:04

机智云串口中断的环形缓冲区读写会不会有可重入的问题?

刚接触STM32和机智云不久,有个疑问请教:
串口中断回调中调用了gizPutData;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef*UartHandle)
{
    if(UartHandle->Instance == USART2)
    {
    gizPutData((uint8_t *)&aRxBuffer, 1);
      HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);//开启下一次接收中断
    }
}

gizPutData会调用rbWrite(&pRb, buf, len);
在main中调用rbRead(&pRb, buf, len)时没看到关中断的操作,
这个中断回调中的rbWrite对pRb->rbTail的改写造成脏数据? 谢谢!






页: [1]
查看完整版本: 机智云串口中断的环形缓冲区读写会不会有可重入的问题?