CubeMX固件包:
STM32Cube FW_F0 V1.10.1
中央处理器:STM32F030RC。
如果使用 ASIS,编译器会报告 UART_TXDATA_FLUSH_REQUEST is undefined。
问题在第 1 行:它错过了 STM32F030xC。
- #if !defined(STM32F030x6) && !defined(STM32F030x8)
- #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
- do{
- SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST);
- SET_BIT((__HANDLE__)->Instance->RQR, UART_TXDATA_FLUSH_REQUEST);
- } while(0)
- #else
- #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
- do{
- SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST);
- } while(0)
- #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
在检查列表中添加 STM32F030xC 之后。它编译确定。
- #if !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F030xC)
- #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
- do{
- SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST);
- SET_BIT((__HANDLE__)->Instance->RQR, UART_TXDATA_FLUSH_REQUEST);
- } while(0)
- #else
- #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
- do{
- SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST);
- } while(0)
- #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
底线是:
STM32F030RC只有USART_RQR_RXFRQ,没有USART_RQR_TXFRQ
希望ST以后能修复这个错误。