合泰社区论坛

 找回密码
 立即注册-HOLTEK

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 3088|回复: 4

Uart接收问题咨询

[复制链接]

1

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2021-11-3 21:16:25 | 显示全部楼层 |阅读模式
合泰开发板
开发用的HT66F0185, 在使用串口中断的时候,Uart有2ByteFifo, 遇到问题是,Uart中断能进入,只能读出rxr  里1个byte的数据, 也就是说发10个字节数据,进5次接收中断,只能读第一个字节的数据。 请问一下,哪里使用有问题,有知道的指点一下




上一篇:合泰2021年新产品介绍方案介绍
下一篇:HT32无法板载烧录代码
回复

使用道具 举报

67

主题

141

帖子

2571

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2571
QQ
发表于 2021-11-4 09:52:02 | 显示全部楼层
合泰开发板
是发10个字节只能进5次中断?如果这样的话,说明有其他中断占用时间,导致串口中断不能及时响应。可以降低波特路、或者改善其他中断占用时间。

其次2byte fifo  可以在一次中断里读出。方式
  1. if(_rxif)
  2. {
  3.       buff[0]=_txr_rxr;
  4.       if(_rxif)
  5.       {
  6.              buff[1]=_txr_rxr;
  7.        }
  8. }
复制代码

回复

使用道具 举报

1

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2021-11-4 14:06:39 | 显示全部楼层
合泰开发板
admin 发表于 2021-11-4 09:52
是发10个字节只能进5次中断?如果这样的话,说明有其他中断占用时间,导致串口中断不能及时响应。可以降低 ...

感谢 ,请问你这个是验证过的吗? 我试过好像不行,第二个if ,程序进不去。 连续读取两次读rxr的程序是在中断里处理的,应该没没什么资源占用,我测试的时候已经把一些功能关闭了,在主函数只留了LED显示,在中断里执行到不同的位置,对应led显示数字。中断执行以后,我只有第一个if执行了 ,感觉像是第一个执行完以后 rxif被清零了,所以第二个if进不去。
回复

使用道具 举报

67

主题

141

帖子

2571

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2571
QQ
发表于 2021-11-5 13:57:50 | 显示全部楼层
合泰开发板
wangrui33422 发表于 2021-11-4 14:06
感谢 ,请问你这个是验证过的吗? 我试过好像不行,第二个if ,程序进不去。 连续读取两次读rxr的程序是 ...

当fifo没有数据了rxif会自动清0,如果第一个执行完了就清0了,说明接收中断已经及时处理了。
你仔细查看自己代码,是否其他问题。
回复

使用道具 举报

1

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2021-11-5 19:23:24 | 显示全部楼层
合泰开发板
admin 发表于 2021-11-5 13:57
当fifo没有数据了rxif会自动清0,如果第一个执行完了就清0了,说明接收中断已经及时处理了。
你仔细查看 ...

好的,谢谢
回复

使用道具 举报

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

本版积分规则

公告:

Archiver|手机版|黑名单|合泰论坛 合泰在线业务 合泰在线技术

GMT+8, 2022-9-30 20:39 , Processed in 0.111220 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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