查看: 2375|回复: 10

[求助] 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-15 15:51:28 | 显示全部楼层 |阅读模式
    数据为变长数据(6byte~133byte),在LPCXpresso55S28 freertos uart receive中怎样配置可以实现每次都读全数据?

    最佳答案

    中山无雪 发表于 2020-11-19 21:08 这种方式实现不了的,因为接收数据中断的触发的条件是FIFO接收到数据并达到设置门槛,触发中断后首先接收 ... 我查了一下我历史的邮件,只能用个Timer来做了,LPC553x会增加这个功 ...
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-11-16 09:27:08 | 显示全部楼层
    对于变长数据的接收,我们现在采取的是应用层检测帧尾的方式来处理。
    比如传输的数据全为文本字符,则通过检测字符 '\0' 来判断帧尾。否则,数据将一直往接收缓存里存放。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 15:34
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    4

    主题

    115

    帖子

    1

    高级会员

    Rank: 4

    积分
    724
    最后登录
    2024-4-25
    发表于 2020-11-16 11:10:13 | 显示全部楼层
    看看有没有空闲中断,IMXRT系列的用过这个,LPC的没太注意过
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-7-5 15:45
  • 签到天数: 664 天

    [LV.9]以坛为家II

    42

    主题

    1594

    帖子

    19

    金牌会员

    Rank: 6Rank: 6

    积分
    5382
    最后登录
    2021-12-22
    发表于 2020-11-17 09:48:48 | 显示全部楼层
    首先是 交互应答式收发,每次收到回答才发下一个,
    其次 就简单了, 比如把首字节设为 长度,收够字节 才回复应答
    再者,需要时建立关于握手、错误处理的应答规则,来处理超时、接收步调配合
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 1479 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92624
    最后登录
    2024-4-26
    发表于 2020-11-17 11:14:34 | 显示全部楼层
    配置为FIFO方式,然后检查FIFO是否为空
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2020-11-19 20:47:07 | 显示全部楼层
    jobszheng5 发表于 2020-11-16 09:27
    对于变长数据的接收,我们现在采取的是应用层检测帧尾的方式来处理。
    比如传输的数据全为文本字符,则通过 ...

    这个方式无法实现,因为外接的是别人的某块,这个模块发送的数据没有明确的结束标志。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2020-11-19 20:48:03 | 显示全部楼层
    okwh 发表于 2020-11-17 09:48
    首先是 交互应答式收发,每次收到回答才发下一个,
    其次 就简单了, 比如把首字节设为 长度,收够字节 才回 ...

    外接的是别人的模块,无法做到有明确标志
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2020-11-19 21:08:20 | 显示全部楼层
    stm1024 发表于 2020-11-17 11:14
    配置为FIFO方式,然后检查FIFO是否为空

    这种方式实现不了的,因为接收数据中断的触发的条件是FIFO接收到数据并达到设置门槛,触发中断后首先接收数据(FIFO中数据的量和设置的接收门槛是一致的),接收完数据后就会呈现FIFO中的数据为空了,这两天一直测试RXIDLE状态值,但是发现不好用,看来只能自己使用CTIMER设置超时来实现了,NXP倒是提供了一个LPC54114的例子看以参考,不知道NXP为何不设置一个UHART的timeout中断,很难吗?有了这个中断很多事情会很容易解决了,我前面使用NUVOTON的MCU人家都有的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    836

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3975
    最后登录
    2024-4-16
    发表于 2020-11-19 21:12:00 | 显示全部楼层
    中山无雪 发表于 2020-11-19 21:08
    这种方式实现不了的,因为接收数据中断的触发的条件是FIFO接收到数据并达到设置门槛,触发中断后首先接收 ...

    我查了一下我历史的邮件,只能用个Timer来做了,LPC553x会增加这个功能。我这边给SDK的同事提个jira吧,看能否在官方的代码里加入这个功能。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    836

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3975
    最后登录
    2024-4-16
    发表于 2020-11-20 00:28:13 | 显示全部楼层
    或者你既然用了RTOS,我猜测数据长度最大也是有限度的,能否在接收任务里利用OS的调度机制 加个 timeout?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-26 18:38 , Processed in 0.161582 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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