[技术问答] 请教Nano130 UART的RX-FIFO问题

[复制链接]
1587|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字节,我没有改动过
jasontu 发表于 2021-4-19 09:20 | 显示全部楼层
如果有开暂存器视窗,nulink驱动停下来会先读取1次
 楼主| 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。
powermaker2568 发表于 2021-4-19 14:12 | 显示全部楼层
FIFO 深度设置问题!
carefull3357dc 发表于 2021-4-19 14:29 | 显示全部楼层
同样感觉是FIFO问题
aoyi 发表于 2021-5-11 19:01 | 显示全部楼层
为什么要关注这个标志位呢
wiba 发表于 2021-5-11 19:02 | 显示全部楼层
实际运行不是这样子的吗
zljiu 发表于 2021-5-11 19:02 | 显示全部楼层
读取字节个数可以设置的吗
coshi 发表于 2021-5-11 19:03 | 显示全部楼层
会产生不好的影响吗
aoyi 发表于 2021-5-11 19:06 | 显示全部楼层
自己程序处理一下吧
drer 发表于 2021-5-11 19:07 | 显示全部楼层
深度设置问题
 楼主| bslxk 发表于 2021-6-1 09:52 | 显示全部楼层
coshi 发表于 2021-5-11 19:03
会产生不好的影响吗

使用起来是没有什么问题,只是刚开始使用这个新唐的mcu,遇到一些问题想要弄明白。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部