OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3613|回复: 1

STM32 Cube库中串口收发机制

[复制链接]

37

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-12-31
在线时间
108 小时
发表于 2016-1-23 13:11:05 | 显示全部楼层 |阅读模式
本帖最后由 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


STM32 Cube HAL_UART_Receive_DMA.rar

33.35 KB, 下载次数: 186

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-1-23 18:59:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 21:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表