»
(008) CubeIDE Implementation of USB Peripherals*
(018) C99 pointer*
(019) C99 With only value assignment*
(022) POSIX pthread multi-threads mutex*
(023) POSIX pthread multi-threads programming*
(027) C99 time and wait*
(028) High-precision calculation with GMP*
(029) Web Service Lib*
(030) International Components for Unicode (ICU)*
(031) Performance of C is higher than C++, because...*
(039) STM32 UART Idle Callback
UART开发的正确过程必须考虑传输出错的问题,也就是出错后的已接收数据和新数据的处理。 其中,传输出错包括:(038)中讲到的各种硬件能够检测出来的字节出错。也包括下面提到的不定长数据接受结果的错误处理。 在通信过程中,多字节的DMA接收是一个效率很高的传输方式。也就是:充分利用HAL_UART_CLEAR_IDLEFALG与HAL_UART_IdleCallback。这是从网上学到的一项基础技能,也就是:基于空闲中断实现不定长数据接受 https://blog.csdn.net/qq_62528741/article/details/142332778 STM32 HAL库 基于空闲中断实现不定长数据接受 关键要点: HAL_UART_CLEAR_IDLEFLAG(&huartX); HAL_UART_ENABLE_IT(&huartX,UART_IT_IDLE);//当传输空闲时产生中断 中断处理函数: void HAL_UART_IdleCallback(UART_HandleTypeDef *huart) 触发空闲中断的条件:如果空闲时间大于字符时间(一个字符的传输时间),则触发中断