接上一贴,这个串口实在是无法理解了,求助

[复制链接]
1141|14
 楼主| libre01 发表于 2016-11-28 17:30 | 显示全部楼层 |阅读模式
用数组ASCII_Send[]来保存将要发送的数据,同时接收用中断,发送用查询,全部程序如照片中,烦请各位帮忙,发送ASCII_Send[]数组,而且此数组当中元素都已固定,为什么发送回来的还会出错;波特率设定的是9600 八位USART 波特率可变 1T模式 用定时器1模式0 16位自动重装

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
地瓜patch 发表于 2016-11-28 19:40 | 显示全部楼层
串口数据量大么?建议换一个串口工具试试
 楼主| libre01 发表于 2016-11-28 19:48 来自手机 | 显示全部楼层
地瓜patch 发表于 2016-11-28 19:40
串口数据量大么?建议换一个串口工具试试

回传的数据量不大,每次PC发送给MCU正确的话,就发送回PC是十个字节数据,十字节为一帧,错误的就是八个字节一帧的数据
cjseng 发表于 2016-11-28 20:43 | 显示全部楼层
装上外部晶振试试吧,降低点波特率
chunyang 发表于 2016-11-28 22:35 | 显示全部楼层
直接贴程序不可取。串口通讯有错只有两种情况,要么波特率不对,要么程序有错。波特率方面,只要本振频率合适,波特率发生器配置正确就不会有问题。程序方面,自己好好检查吧,初学者更应该在编写程序前,好好规划程序流程。
皈依 发表于 2016-11-29 11:22 | 显示全部楼层
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形
 楼主| libre01 发表于 2016-11-29 16:33 | 显示全部楼层
皈依 发表于 2016-11-29 11:22
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形 ...

经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8],但是还是不明白这个数组名怎么就会影响到发送帧了
皈依 发表于 2016-11-29 16:39 | 显示全部楼层
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

应该是程序中名字没全匹配吧。。。名字不会有这么大的影响的
 楼主| libre01 发表于 2016-11-29 16:44 | 显示全部楼层
皈依 发表于 2016-11-29 16:39
应该是程序中名字没全匹配吧。。。名字不会有这么大的影响的

对啊,名字只是个地址而已,应该不会是STC15单片机问题,有空换个系列单片机再试试
皈依 发表于 2016-11-29 17:07 | 显示全部楼层
libre01 发表于 2016-11-29 16:44
对啊,名字只是个地址而已,应该不会是STC15单片机问题,有空换个系列单片机再试试 ...

嗯 妥妥的~
dirtwillfly 发表于 2016-11-30 14:06 | 显示全部楼层
皈依 发表于 2016-11-29 11:22
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形 ...

用逻辑分析仪就可以了,示波器用起来比较累
皈依 发表于 2016-11-30 14:13 | 显示全部楼层
dirtwillfly 发表于 2016-11-30 14:06
用逻辑分析仪就可以了,示波器用起来比较累

额。。。逻辑分析仪还便宜
cjseng 发表于 2016-11-30 16:06 | 显示全部楼层
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别
cjseng 发表于 2016-11-30 16:06 | 显示全部楼层
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别
 楼主| libre01 发表于 2016-12-1 17:06 | 显示全部楼层
cjseng 发表于 2016-11-30 16:06
换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别 ...

是够奇葩的,中间环节全部注释掉后,直接发送Answer数组才发现这个问题的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

179

帖子

4

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