刚接触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的改写造成脏数据? 谢谢!
|