打印
[N32WBxxx]

N32WB031KEQ6 LPUART能接收到FIFO非空中断,但是数据为0

[复制链接]
472|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Coinhuanhuan|  楼主 | 2025-7-17 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在调试的过程中使用了LPUART1作为debug端口,进行日志打印,并通过串口工具发送一些测试指令。
调试过程中遇到一个很奇怪的问题,来看看有没有大佬可以指点一下。
串口配置如下:
端口:LPUART1
波特率:115200
引脚:PB1,PB2
时钟源:根据手册说明,支持LSI,LSE或APB1,此处配置为APB1
RCC_ConfigLpuartClk(RCC_LPUART1CLK, RCC_LPUARTCLK_SRC_APB1);
RCC_EnableLpuartClk(ENABLE);
中断配置:(调试过程中本想使用TXC中断做异步发送,但遇到另一个问题,下次再细说)
LPUART_ConfigInt(LPUART1, LPUART_INT_FIFO_NE, ENABLE);
中断优先级:3

现象:
能够接收到系统输出的日志,接着发送测试指令,发现没有任何响应,于是进行debug,发现能够触发中断,此时的LPUART1寄存器数据如下:
STS:0x0020,FIFO_NE = 1,表示此时缓冲器非空,RX 数据已准备好被读取
INTEN:0x20,FIFO_NEIE = 1,表示使能缓冲器非空中断,有中断触发,说明中断使能是有效的
CTRL:0x020A,RTS_THSEL= 2,FIFO 全满时,RTS 有效,PCDIS=1,禁止奇偶校验位,TXEN=1,使能TX
BRCFG1:0x115,APB1时钟频率32M,此处分频系数为277,对应波特率115200
DAT:0x00,问题出在这里,为什么数据寄存器为0?

PS:
使用SDK中的LPUART/Interrupt例程发现也是能触发中断,但是DAT为0,更换了一块新板子后发现测试指令能收到,换回原来的板子仍然不行,因此怀疑是芯片损坏导致。但是再换回新板子调试发现也不行了,所以怀疑还是软件问题导致。

使用特权

评论回复
评论
Coinhuanhuan 2025-7-17 17:30 回复TA
老板子更换了一颗全新的芯片,仍然不行。 
沙发
elephant00| | 2025-7-31 15:11 | 只看该作者
芯片坏了?

使用特权

评论回复
板凳
jcky001| | 2025-7-31 15:11 | 只看该作者
引脚连接错误?

使用特权

评论回复
地板
cr315| | 2025-7-31 15:12 | 只看该作者
检查软件配置。中断配置错误或者是寄存器配置错误?

使用特权

评论回复
5
elephant00| | 2025-7-31 15:12 | 只看该作者
波特率或时钟源配置不正确?

使用特权

评论回复
6
stormwind123| | 2025-7-31 15:14 | 只看该作者
用不同的串口工具或调试器进行测试,以排除软件冲突或兼容性问题。

使用特权

评论回复
7
powerantone| | 2025-7-31 15:46 | 只看该作者
电源不稳定可能导致芯片工作异常,进而影响数据传输。

使用特权

评论回复
8
flycamelaaa| | 2025-7-31 16:13 | 只看该作者
外部电磁干扰可能导致数据传输错误或丢失。

使用特权

评论回复
9
probedog| | 2025-7-31 17:14 | 只看该作者
用万用表或示波器检查开发板的电源电压是否稳定。

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝