前言
在串口通信中,串口波特率过高时,就适合用同步串口,同步串口通信除了TX、RX这两根线外,还有CLK时钟信号线,以保证在高速情况下数据传输稳定不出错。
STM32如何用USART实现同步串口功能?是用USART的synchronous模式吗?
看STM32F1/F4系列的数据手册,这两个系列是有同步串口功能的,需要用USART的synchronous模式来实现,USART的synchronous模式本质其实是SPI,STM32是主机。
实验过程如下,用STM32CUBEMX软件配置完同步串口过后,生成keil工程,然后用HAL_USART_Transmit和HAL_USART_Receive这两函数就可以实现同步串口的发送和接收。
例如我用HAL_USART_Transmit(&huart3, data_tran_arr, 10, 0xffff)发送10个字节数据,示波器抓到的波形如下: