找回密码
 立即注册
查看: 181|回复: 12

STC8A8K64D4串口通讯个别字符错误

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-04 09:55:17

7

主题

16

回帖

101

积分

注册会员

积分
101
发表于 2026-1-30 11:20:46 | 显示全部楼层 |阅读模式
STC8A8K64D4串口通讯个别字符错误,一百四十个字符,偶尔有个别的数据别替换。具体是:0a 00 被替换成了0D 0D,还有好几个数据被替换成了3F。如果通讯数据中没有被替换的特殊字符,那么数据串是正确的。有个别的特殊字符,那么数据串就错误了。开始怀疑是printf的问题,后来不使用printf输出查看,只在程序中判断校验是否正确,还是校验不通过。很是奇怪。把数据带入到校验算法中都是没有问题。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2026-04-02 07:37:00

6

主题

323

回帖

2991

积分

金牌会员

积分
2991
发表于 2026-1-30 11:33:08 | 显示全部楼层
换外部晶振试试,是不是晶振频率精度不准确,通讯电缆换成带屏蔽层的。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:787
  • 最近打卡:2026-04-02 09:10:51
已绑定手机

16

主题

1401

回帖

4943

积分

论坛元老

积分
4943
发表于 2026-1-30 11:36:19 | 显示全部楼层
难道字符串中有FD?有没有打FD补丁?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-04 09:55:17

7

主题

16

回帖

101

积分

注册会员

积分
101
发表于 2026-1-30 11:37:18 | 显示全部楼层
截图202601301135382314.jpg [attachimg]正确的是上图,被修改的是下图
截图202601301136526060.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-1-30 11:56:54 | 显示全部楼层
这是在烧写程序?加密传输?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-04 09:55:17

7

主题

16

回帖

101

积分

注册会员

积分
101
发表于 2026-1-30 12:18:25 | 显示全部楼层
这个程序是在做远程升级的一部分。服务器发送出base64编码的数据,经过4G模块到STC8A8K64D4。再把原来的数据串解码出来,16*8行程序加上数据头,校验位等组成一串数据下发。MCU收到数据后再把数据串还原出来。数据还原出来后就是上面出问题的数据串。开始怀疑是base64解码算法的问题,后来改变了另一种算法。把一个字符十六进制比如0X8B,拆成两个字符‘8’和'B'发送,MCU还原后校验还是同样的问题。这个还不是字符乱码的问题。是个别的字符出的问题。初步接收后MCU输出原来字符串判断,是正确的。解码后校验就不正确了。单片机输出数据串查看,就是上面图上的比对图。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-04 09:55:17

7

主题

16

回帖

101

积分

注册会员

积分
101
发表于 2026-1-30 12:20:03 | 显示全部楼层
21cns*** 发表于 2026-1-30 11:36
难道字符串中有FD?有没有打FD补丁?

STC8A8K64D4中的程序,需要怎么做打FD补丁?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:725
  • 最近打卡:2026-03-30 12:09:34
已绑定手机

97

主题

7246

回帖

1万

积分

超级版主

积分
13798
发表于 2026-1-30 13:05:52 | 显示全部楼层
3F是连续的0或1,检查是否受到干扰,示波器测量看一下
注意IO模式,TXD推挽,RXD高阻打开4K上拉
截图202601301305454283.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-03-04 09:55:17

7

主题

16

回帖

101

积分

注册会员

积分
101
发表于 2026-1-30 15:12:49 | 显示全部楼层
lcws*** 发表于 2026-1-30 11:56
这是在烧写程序?加密传输?

没有加密,只是一个简单的把十六进制变成字符串进行传输。
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-1-30 15:26:04 | 显示全部楼层
ning*** 发表于 2026-1-30 15:12
没有加密,只是一个简单的把十六进制变成字符串进行传输。

也就是说,这是两个单片机的事,初步怀疑是接收方的问题,那么能否排除硬件本身的问题呢?

比如用一个USB转TTL来监测接收方单片机RXD脚收到的数据,且接收方单片机可以将收到的原始数据再发到串口助手,二者作个对比就知道了。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-3 02:15 , Processed in 0.118942 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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