打印
[技术问答]

请教Nano130 UART的RX-FIFO问题

[复制链接]
1075|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bslxk|  楼主 | 2021-4-16 08:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手册上是说当RX-FIFO中的一个字节被CPU读出,RX_POINTER_F才会减一。我直接跑官方的UART_TxRx_Function例程,串口输入8个以上的字节是正常回显的。但是如果在接收中断里打一个断点单步调试,发现停在断电位置的时候RX_POINTER_F就已经少了2个字节了,而且每走一步RX_POINTER_F都会减2,这就导致之后去循环读取RBR的时候得到的数据不全。请问有人遇到过这个问题吗,是不是我什么地方没有配置好?
另外,我发现每走一步RX_POINTER_F减2的时候RBR和THR寄存器里的值刚好是被读出的两个字节,为什么会这样?而且我看手册里RBR和THR指向的是同一个地址,为什么会是两个不同的值?
我用的IAR,硬件是NuTiny-EVB-Nano130-LQFP128 V1.2开发板,仿真器是开发板上的Nu-Link-Me V1.5。

使用特权

评论回复
沙发
两只袜子| | 2021-4-16 09:01 | 只看该作者
有大神知道是怎么回事吗

使用特权

评论回复
板凳
jerow| | 2021-4-17 20:22 | 只看该作者
是不是你读取的字节设置的就是2个字节呢?而不是一个字节。

使用特权

评论回复
地板
bslxk|  楼主 | 2021-4-19 08:46 | 只看该作者
jerow 发表于 2021-4-17 20:22
是不是你读取的字节设置的就是2个字节呢?而不是一个字节。

不是的,读取的字节是例程里设置的8字节,我没有改动过

使用特权

评论回复
5
jasontu| | 2021-4-19 09:20 | 只看该作者
如果有开暂存器视窗,nulink驱动停下来会先读取1次

使用特权

评论回复
6
bslxk|  楼主 | 2021-4-19 10:51 | 只看该作者
jasontu 发表于 2021-4-19 09:20
如果有开暂存器视窗,nulink驱动停下来会先读取1次

的确是这样,我关闭寄存器视图之后再单步调试输出结果就正常了。多谢指导!
另外,RBR和THR显示结果不同和每走一步RX_POINTER_F减2的原因是不是也是这个?寄存器视图读取一次RBR,然后读取一次THR,读取的是同一个地址,读走了两个字节分别显示出来,结果导致每走一步RBR和THR显示读走的这两个字节,并且RX_POINTER_F减2。

使用特权

评论回复
7
powermaker2568| | 2021-4-19 14:12 | 只看该作者
FIFO 深度设置问题!

使用特权

评论回复
8
carefull3357dc| | 2021-4-19 14:29 | 只看该作者
同样感觉是FIFO问题

使用特权

评论回复
9
aoyi| | 2021-5-11 19:01 | 只看该作者
为什么要关注这个标志位呢

使用特权

评论回复
10
wiba| | 2021-5-11 19:02 | 只看该作者
实际运行不是这样子的吗

使用特权

评论回复
11
zljiu| | 2021-5-11 19:02 | 只看该作者
读取字节个数可以设置的吗

使用特权

评论回复
12
coshi| | 2021-5-11 19:03 | 只看该作者
会产生不好的影响吗

使用特权

评论回复
13
aoyi| | 2021-5-11 19:06 | 只看该作者
自己程序处理一下吧

使用特权

评论回复
14
drer| | 2021-5-11 19:07 | 只看该作者
深度设置问题

使用特权

评论回复
15
bslxk|  楼主 | 2021-6-1 09:52 | 只看该作者
coshi 发表于 2021-5-11 19:03
会产生不好的影响吗

使用起来是没有什么问题,只是刚开始使用这个新唐的mcu,遇到一些问题想要弄明白。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝