12
返回列表 发新帖
楼主: 中山无雪

[求助] LPCXpresso55S28 freertos_uart怎样实现receive timeout功能?

[复制链接]
  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2020-11-20 10:19:00 | 显示全部楼层
    mgn 发表于 2020-11-20 00:28
    或者你既然用了RTOS,我猜测数据长度最大也是有限度的,能否在接收任务里利用OS的调度机制 加个 timeout? ...

    当前的情况下也只能如此凑合着用。
    使用定时器判断timeout可以采用两种方式:
    1、在应用中针对每个byte做超时设置,这样做效率会非常低(MCU内部实现超时功能就是如此设置的,单比在应用中做超时效率会高很多),且fifo就没什麽用了,起不到效果;
    2、针对每次接收的所有字符做超时,这样会存在一个隐患,即当接收的数据长度变化足够大时,超时只能按可能接受的最长数据来设置,但是当接收到的数据长度很短时很有可能多读数据,无法有效保证接收数据的正确性。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-7 10:59 , Processed in 0.124775 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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