本帖最后由 suntree 于 2016-1-23 13:14 编辑
1 STM32cube 串口初始化函数简介: 1设置串口传输必要的参数; 2 初始化串口底层驱动 3 设置串口传输参数 4 设置串口高级功能 2 HAL_StatusTypeDefHAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 函数说明: 1) 检查当前的串口功能状态 2) 设置传输接收的数据长度和地址 3) 设置当前的串口状态 4) 给串口DMA功能的回调函数指针赋值 5) 使能串口的DMA中断; file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif 1 串口发送和串口接收状态冲突处理机制简介: 串口接收函数(HAL_UART_Receive_DMA): 当串口接收配置成DMA接收的时候如果检测到当前的串口正在发送数据(HAL_UART_STATE_BUSY_TX),将串口的状态配置成串口发送接收状态(HAL_UART_STATE_BUSY_TX_RX);当串口接收完成后将串口的状态设置成串口正在发送数据的状态(HAL_UART_STATE_BUSY_TX);当串口发送数据完成后将串口的工作状态设置成HAL_UART_STATE_READY;
串口DMA发送函数(HAL_UART_Transmit_DMA ): 当串口发送配置成DMA数据发送状态的时候如果当前的串口状态是数据接收状态(HAL_UART_STATE_BUSY_RX);将串口当前的状态设置成串口发送接收状态(HAL_UART_BUSY_TX_RX),当串口数据发送完毕的时候将串口当前的状态设置成串口接收状态(HAL_UART_RX);当串口接收数据完毕的时候将串口的状态设置成准备数据接收状态(HAL_UART_READY)
|