搜索
查看: 1032|回复: 4

[求助] STM32F030HAL库串口4接收假死

[复制链接]

该用户从未签到

1

主题

16

帖子

0

蝴蝶豆

初级会员

最后登录
2020-6-30
发表于 2019-11-19 13:42:30 | 显示全部楼层 |阅读模式
芯片: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
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2019-11-20 14:44:47 | 显示全部楼层
    如果初始化就能正常的话,那就有可能是该清的状态没有清除。
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    1

    主题

    18

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2019-11-20
    发表于 2019-11-20 09:26:32 | 显示全部楼层
    条件不足,请完善
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    44

    主题

    647

    帖子

    163

    蝴蝶豆

    金牌会员

    最后登录
    2021-4-25
    发表于 2019-11-20 17:22:44 | 显示全部楼层
    不要做全双工操作,具体可见
    参见 拙文
    http://blog.csdn.net/suxingtian/article/details/86526746

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    1306

    帖子

    929

    蝴蝶豆

    版主

    最后登录
    2021-3-31
    发表于 2019-11-27 17:26:28 | 显示全部楼层
    查询的方式比较单纯,对逻辑要求较高,只能说明工作原理,但对实际应用适用能力不强。通常用中断或者DMA方式的比较多,而且HAL库对可能出现的标志位都已经做了判断和处理的

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-20 21:25 , Processed in 1.169841 second(s), 39 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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