你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
Kevin201707 发表于 2018-12-12 12:57 TDR一旦为空,TXE就置位;因此当你打开UART发送空中断使能时,由于还没有往TDR填充数据,TDR是空的,所以TX ...
就是我打开中断后,第一次进中断后,判断标志,发送数据,我还没有发第一次数据,这个时候TXE标志怎么能够查询到?
void USART1_IRQHandler(void)
{
MCU_INT32MU tmp_flag = 0, tmp_it_source = 0;
#ifndef VC_PRJ
tmp_flag = __HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE);
tmp_it_source = __HAL_UART_GET_IT_SOURCE(&UartHandle, UART_IT_RXNE);
if((tmp_flag != RESET) && (tmp_it_source != RESET))
{
xMBRTUReceiveFSM( );
}
tmp_flag = __HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_TXE);
tmp_it_source = __HAL_UART_GET_IT_SOURCE(&UartHandle, UART_IT_TXE);
/* UART in mode Transmitter ------------------------------------------------*/
if((tmp_flag != RESET) && (tmp_it_source != RESET))
{
xMBRTUTransmitFSM( );
}
#endif
原来是这样的,理解了,谢谢你的解释。