找回密码
 立即注册
查看: 239|回复: 10

求大佬指点,用RTX51 Tiny时,串口2发送没问题,但串口2接收时会丢数据

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 11:37:30 | 显示全部楼层 |阅读模式

芯片用的是Ai8H2K32U,用以下例程裸机测试时,串口2接收没异常,不会丢数据

image.png

程序里做了一点修改,用预处理命令来决定开启或关闭RTX51 Tiny

image.png

开启RTX51 Tiny时需要把这两个文件添加进去,不开启时需要把这两个文件删掉

image.png

重点来了,程序主频是24MHz,以下是裸机时的接收现象,可以发现接收时不会丢数据的

image.png
image.png

以下是使用RTX51 Tiny时的接收现象,可以发现接收时会丢数据

image.png
image.png

查了好久没查出什么原因,猜测是任务调度与串口接收中断有冲突?串口接收中断优先级开到最高级也没用

找不出原因了,有没有大佬帮忙看一下。

以下是串口中断处理函数

image.png

以下是RTX51 Tiny配置

image.png

工程文件放在最后

upload 附件:06-串口2中断模式与电脑收发测试.zip

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:342
  • 最近打卡:2025-06-16 08:01:58
已绑定手机

4

主题

397

回帖

1891

积分

金牌会员

积分
1891
发表于 2025-5-30 15:12:53 | 显示全部楼层
这个是干啥的,可以直接用?
截图202505301512292485.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 15:22:41 | 显示全部楼层
haiya*** 发表于 2025-5-30 15:12
这个是干啥的,可以直接用?

这是RTX51 Tiny自带的一个延时函数,通过#include  "RTX51TNY.h"头文件调用的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2025-06-16 08:30:05
已绑定手机

17

主题

472

回帖

1341

积分

金牌会员

积分
1341
发表于 2025-5-30 15:26:18 | 显示全部楼层
1MS滴答中断对于TINY来说有点太快了,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 15:27:44 | 显示全部楼层
Ayb_*** 发表于 2025-5-30 15:26
1MS滴答中断对于TINY来说有点太快了,

因为我设置了INT_CLOCK是1ms,而且这只是一个串口查询接收任务,就算把时间加大了也还是会丢数据。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2025-06-16 08:30:05
已绑定手机

17

主题

472

回帖

1341

积分

金牌会员

积分
1341
发表于 2025-5-30 15:37:55 | 显示全部楼层
试试这样
        if(RI2)
        {
                u8 ucTmp = S2BUF;
                CLR_RI2();

               
        if(COM2.RX_Cnt >= COM_RX2_Lenth)        COM2.RX_Cnt = 0;
        RX2_Buffer[COM2.RX_Cnt++] = ucTmp;
        COM2.RX_TimeOut = TimeOutSet2;
        }
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 15:41:49 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=168299&ptid=18182][color=#999999]Ayb_ice 发表于 2025-5-30 15:37[/color][/url][/size] 试试这样 if(RI2) { [/quote]

串口接收中断这里有接收和发送处理了

image.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2025-06-16 08:30:05
已绑定手机

17

主题

472

回帖

1341

积分

金牌会员

积分
1341
发表于 2025-5-30 15:43:08 | 显示全部楼层
波特率降低点试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 15:47:47 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=168301&ptid=18182][color=#999999]Ayb_ice 发表于 2025-5-30 15:43[/color][/url][/size] 波特率降低点试试[/quote]

这个可以,波特率降到9600后,就不会丢数据了

image.png

但这是为什么呢penxue

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-05-30 11:01:27
已绑定手机

1

主题

6

回帖

51

积分

注册会员

积分
51
发表于 2025-5-30 15:58:21 | 显示全部楼层
ZARD*** 发表于 2025-5-30 15:47
这个可以,波特率降到9600后,就不会丢数据了

但这是为什么呢


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 13:06 , Processed in 0.137978 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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