打印
[综合信息]

HC32L110的LPUART低功耗串口无校验时接收不稳定

[复制链接]
2759|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
king00star|  楼主 | 2024-6-3 11:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HC32L110,无外部高速、低速晶振。RCH用的内部4M晶振,RCL使用内部38.4k,LPUART使用工作模式1(无校验时)或工作模式3(有校验)。
MCU上电初始化后进入低功耗状态,在低功耗状态下LPUART接收。
目前的问题现象:
使用SSCOM发送一帧数据,LPUART 2400/9600带奇偶校验接收无问题,每个字节都会产生中断。
如果改成无校验模式,SSCOM发送一帧数据,只有最后一个字节会产生中断,前面的字节都接收不到(有的时候也会不丢数据)。如果SSCOM发送时停止位改成2位,或者每次只发送1个字节,接收也没问题。

似乎是HC32L110无校验的情况下还是当成了有校验?

使用特权

评论回复
沙发
king00star|  楼主 | 2024-6-4 15:12 | 只看该作者
有没有用过深度睡眠下LPUART无校验接收的?如果用过没问题,那我只能找找自己的软硬件问题。如果硬件本身不支持这么用,那就不在这上面浪费时间了

使用特权

评论回复
板凳
wubangmi| | 2024-6-4 16:26 | 只看该作者
king00star 发表于 2024-6-4 15:12
有没有用过深度睡眠下LPUART无校验接收的?如果用过没问题,那我只能找找自己的软硬件问题。如果硬件本身不 ...

你代码写的有问题,仔细检查代码的问题。

给你的建议是:
1、需要加载内部38400的校准值。
2、模式1和模式3不要混了。模式1为无校验,模式3为有校验。

使用特权

评论回复
地板
chenjun89| | 2024-6-5 07:47 | 只看该作者
怀疑是和内部时钟精度有关系,建议楼主还是用外部时钟。

使用特权

评论回复
5
classroom| | 2024-6-5 16:18 | 只看该作者
有可能是硬件故障

使用特权

评论回复
6
laocuo1142| | 2024-6-5 17:00 | 只看该作者
串口通讯速率设置可能过高,或者写入数据缓存区的数据量过大,导致数据处理不及时。

使用特权

评论回复
7
stormwind123| | 2024-6-5 19:00 | 只看该作者
兼容性问题

使用特权

评论回复
8
Annie556| | 2024-6-17 12:25 | 只看该作者
串口接收缓冲区溢出可能会导致不稳定

使用特权

评论回复
9
B1lanche| | 2024-6-17 13:31 | 只看该作者
在无校验模式下,如果SSCOM发送的数据速率过快,可能会导致串口接收缓冲区溢出,从而导致前面的字节丢失

使用特权

评论回复
10
Charlene沙| | 2024-6-17 14:35 | 只看该作者
其实你可以尝试增加串口接收缓冲区的大小,或者减慢SSCOM发送数据的速率,以避免缓冲区溢出

使用特权

评论回复
11
Belle1257| | 2024-6-17 16:07 | 只看该作者
在无校验模式下,如果串口接收中断的优先级设置不正确,可能会导致前面的字节被后面的字节覆盖

使用特权

评论回复
12
Emily999| | 2024-6-17 17:11 | 只看该作者
建议你检查中断优先级设置是否正确,确保串口接收中断的优先级高于其他中断

使用特权

评论回复
13
Allison8859| | 2024-6-17 18:12 | 只看该作者
串口接收中断处理函数逻辑错误,在无校验模式下,如果串口接收中断处理函数的逻辑错误,可能会导致前面的字节被丢失

使用特权

评论回复
14
Carina卡| | 2024-6-17 19:16 | 只看该作者
其实可以检查串口接收中断处理函数的逻辑是否正确,确保每个字节都能够正确接收和处理。这样就可以解决了

使用特权

评论回复
15
Betty996| | 2024-6-18 07:30 | 只看该作者
串口硬件配置错误,在无校验模式下,如果串口硬件配置错误,可能会导致前面的字节被丢失。你可以检查串口硬件配置是否正确,包括波特率、数据位、停止位等参数是否设置正确

使用特权

评论回复
16
alxd| | 2024-6-18 09:10 | 只看该作者
可以通过打印调试信息、查看错误码等方式来定位具体的问题所在

使用特权

评论回复
17
Betty1299| | 2024-6-18 11:02 | 只看该作者
你也可以参考HC32L110芯片的开发文档、LPUART的相关文档和社区资源来解决你的需求

使用特权

评论回复
18
亚瑟| | 2024-6-28 19:24 | 只看该作者
是时钟变化影响的吗

使用特权

评论回复
19
king00star|  楼主 | 2024-6-29 16:24 | 只看该作者
还没定位出来。
前面大家提到的应该都不是问题。
单个字节发每次都没问题。如果是发多字节数据帧,不管多长,只有最后一个字节产生了接收中断,前面什么反应也没有,感觉是硬件的停止位判断出错了一直未完成字节接收,而最后1个字节停止位肯定足够长。  时钟用的内部38.4k,启动的时候也校准过了,时钟应该是对的。

使用特权

评论回复
评论
JacksonChen 2024-9-25 16:03 回复TA
请问楼主解决这个问题了吗,我最近刚接触华大的HC32L110C6UA,也是遇到您这样的问题,串口助手发送一段数据过去,只能接收到最后一个字符 
20
szt1993| | 2024-6-30 09:02 | 只看该作者
是不是硬件干扰问题

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝