请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030HAL库串口4接收假死

[复制链接]
龙白木 提问时间:2019-11-19 13:42 /
芯片:STM32F030CCT6
库版本:STM32Cube_FW_F0_V1.11.0

问题:UART4,接收阻塞模式几分钟后无法收到数据。

代码如下:
  1. HAL_UART_Transmit(&SENSOR_UART, SENSOR_TxBuf, sizeof(SENSOR_TxBuf), 50);
  2. if(HAL_UART_Receive(&SENSOR_UART, SENSOR_RxBuf, sizeof(SENSOR_RxBuf), 200) == HAL_OK)
  3. {

  4. }
  5. else
  6. {

  7. }
复制代码

目前解决方案:
在接收结束后,加上初始化函数。
  1. MX_USART4_UART_Init();
复制代码

竟然在签到界面看到自己帖子了。。。问题原因的确如板凳所说,标志位没清。如下图所示,ORE标志位未清除。


注:UART1用的是中断方式收发,没有问题。



ORE解释.png
收藏 评论4 发布时间:2019-11-19 13:42

举报

4个回答
七哥 回答时间:2019-11-20 14:44:47
如果初始化就能正常的话,那就有可能是该清的状态没有清除。
DOUBLE222222 回答时间:2019-11-20 09:26:32
条件不足,请完善
tanic 回答时间:2019-11-20 17:22:44
不要做全双工操作,具体可见
参见 拙文
http://blog.csdn.net/suxingtian/article/details/86526746

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

butterflyspring 回答时间:2019-11-27 17:26:28
查询的方式比较单纯,对逻辑要求较高,只能说明工作原理,但对实际应用适用能力不强。通常用中断或者DMA方式的比较多,而且HAL库对可能出现的标志位都已经做了判断和处理的

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版