找回密码
 立即注册
查看: 146|回复: 7

帮客户询问关于串口发送的问题|已解决

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:259
  • 最近打卡:2025-06-16 10:05:53
已绑定手机

29

主题

776

回帖

3462

积分

超级版主

积分
3462
QQ
发表于 2025-5-12 16:10:28 | 显示全部楼层 |阅读模式
客户询问:型号:STC8H1K08-36I-TSSOP20, 串口2发送数据没有问题!单独接受收1个字节的数据没有问题!当另外一端以2个字节以上的数发包时,连续2个字节发送,总是有一个字节是重复的,连续2个字节发送,我用示波器看了,波形是一样的,请问各位大佬这是什么原因呢,需要提供原理图什么的嘛
回复

使用道具 举报 送花

3

主题

698

回帖

107

积分

等待验证会员

积分
107
发表于 2025-5-12 16:12:00 | 显示全部楼层
针对您描述的STC8H1K08-36I-TSSOP20单片机串口2接收异常问题,我们结合常见设计场景和技术规范给出以下系统性分析及解决方案建议:

一、现象定位与技术分析
1. 基础验证确认
• 发送端波形验证有效(示波器确认)
• 单字节接收功能正常
• 异常现象:连续接收双字节时存在数据重复

2. 核心问题聚焦
根据经验判断,该现象与接收中断处理机制关联度达90%以上,其余可能涉及硬件设计或时钟配置问题。

二、典型成因排查清单

1. 中断处理机制缺陷(优先级最高)
中断标志未及时清除
未采用双缓冲接收架构
中断响应时序超限
全局中断管理异常

2. 时钟系统配置
主时钟源稳定性(建议示波器测量OSC输出)
波特率分频系数计算误差
时钟树配置寄存器设置

3. 硬件设计隐患
RS232/TTL电平匹配异常
信号回路阻抗不匹配(建议测量线路特征阻抗)
电源去耦不足(重点检查VDD/GND间100nF电容布局)

三、深度技术建议

1. 中断服务程序优化方案
推荐采用以下标准中断处理框架:
  1. C
  2. void UART2ISR() interrupt 8
  3. {
  4.     if (S2CON & 0x01) {         // 检查RI2标志
  5.         S2CON &= ~0x01;         // 立即清除接收中断标志
  6.         recvbuffer[wridx] = S2BUF;
  7.         wridx = (wridx + 1) % BUFSIZE;
  8.     }
  9.     // 可选错误状态处理
  10.     if (S2CON & 0x02) {         // 检查TI2标志
  11.         S2CON &= ~0x02;         // 清除发送中断标志
  12.         // 发送处理逻辑
  13.     }
  14. }
复制代码

关键设计要点:
中断标志清除操作必须优先于数据读取
采用环形缓冲区结构(建议深度≥4字节)
避免在中断服务中进行复杂运算

2. 波特率精度验证
执行以下校验流程:
1) 计算理论波特率分频值:
   BR = (65536 - FOSC/波特率/4)
2) 实测系统时钟频率(建议使用P34引脚CLKOUT功能输出测量)
3) 校验UARTM2x位配置(模式控制位)

3. 硬件设计检查重点
确保信号线长度≤15cm(1Mbps速率下)
检查UART线路是否并联≥22pF电容
验证VDD纹波<50mVpp(使用100MHz带宽示波器)
确认ESD防护器件响应速度(TVS二极管应选

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4312

积分

荣誉版主

无情的代码机器

积分
4312
发表于 2025-5-12 16:19:43 | 显示全部楼层
需要上传代码

点评

代码我放在下面啦~  详情 回复 发表于 2025-5-12 16:27
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:259
  • 最近打卡:2025-06-16 10:05:53
已绑定手机

29

主题

776

回帖

3462

积分

超级版主

积分
3462
QQ
发表于 2025-5-12 16:27:37 | 显示全部楼层
这个是客户代码,麻烦各位大佬看看

GAA235 PROTECT1.zip

451.3 KB, 下载次数: 6

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:259
  • 最近打卡:2025-06-16 10:05:53
已绑定手机

29

主题

776

回帖

3462

积分

超级版主

积分
3462
QQ
发表于 2025-5-12 16:27:53 | 显示全部楼层

代码我放在下面啦~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4312

积分

荣誉版主

无情的代码机器

积分
4312
发表于 2025-5-12 16:40:15 | 显示全部楼层
Uart2RevData函数逻辑问题
建议参考例程编码
11-串口2中断模式与电脑收发测试.zip (57.75 KB, 下载次数: 5)

点评

好的 谢谢您  详情 回复 发表于 2025-5-12 16:51
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:259
  • 最近打卡:2025-06-16 10:05:53
已绑定手机

29

主题

776

回帖

3462

积分

超级版主

积分
3462
QQ
发表于 2025-5-12 16:51:13 | 显示全部楼层
erci*** 发表于 2025-5-12 16:40
Uart2RevData函数逻辑问题
建议参考例程编码

好的  谢谢您
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-06-17 09:09:48
已绑定手机

79

主题

5137

回帖

9134

积分

超级版主

DebugLab

积分
9134
发表于 2025-5-12 17:49:09 | 显示全部楼层
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-18 01:50 , Processed in 0.130478 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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