打印

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

[复制链接]
852|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
libre01|  楼主 | 2016-11-28 17:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用数组ASCII_Send[]来保存将要发送的数据,同时接收用中断,发送用查询,全部程序如照片中,烦请各位帮忙,发送ASCII_Send[]数组,而且此数组当中元素都已固定,为什么发送回来的还会出错;波特率设定的是9600 八位USART 波特率可变 1T模式 用定时器1模式0 16位自动重装

IMG_20161128_135609.jpg (354.22 KB )

IMG_20161128_135609.jpg

IMG_20161128_135551.jpg (402.2 KB )

IMG_20161128_135551.jpg

IMG_20161128_135623.jpg (386.1 KB )

IMG_20161128_135623.jpg

IMG_20161128_135637.jpg (383.73 KB )

IMG_20161128_135637.jpg

IMG_20161128_135653.jpg (397.46 KB )

IMG_20161128_135653.jpg

IMG_20161128_135711.jpg (399.07 KB )

IMG_20161128_135711.jpg

IMG_20161128_135720.jpg (413.68 KB )

IMG_20161128_135720.jpg

IMG_20161128_135753.jpg (439.87 KB )

IMG_20161128_135753.jpg

IMG_20161128_135836.jpg (490.15 KB )

IMG_20161128_135836.jpg

相关帖子

沙发
地瓜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 | 只看该作者
装上外部晶振试试吧,降低点波特率

使用特权

评论回复
5
chunyang| | 2016-11-28 22:35 | 只看该作者
直接贴程序不可取。串口通讯有错只有两种情况,要么波特率不对,要么程序有错。波特率方面,只要本振频率合适,波特率发生器配置正确就不会有问题。程序方面,自己好好检查吧,初学者更应该在编写程序前,好好规划程序流程。

使用特权

评论回复
6
皈依| | 2016-11-29 11:22 | 只看该作者
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形

使用特权

评论回复
7
libre01|  楼主 | 2016-11-29 16:33 | 只看该作者
皈依 发表于 2016-11-29 11:22
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形 ...

经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8],但是还是不明白这个数组名怎么就会影响到发送帧了

使用特权

评论回复
8
皈依| | 2016-11-29 16:39 | 只看该作者
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

应该是程序中名字没全匹配吧。。。名字不会有这么大的影响的

使用特权

评论回复
9
libre01|  楼主 | 2016-11-29 16:44 | 只看该作者
皈依 发表于 2016-11-29 16:39
应该是程序中名字没全匹配吧。。。名字不会有这么大的影响的

对啊,名字只是个地址而已,应该不会是STC15单片机问题,有空换个系列单片机再试试

使用特权

评论回复
10
皈依| | 2016-11-29 17:07 | 只看该作者
libre01 发表于 2016-11-29 16:44
对啊,名字只是个地址而已,应该不会是STC15单片机问题,有空换个系列单片机再试试 ...

嗯 妥妥的~

使用特权

评论回复
11
dirtwillfly| | 2016-11-30 14:06 | 只看该作者
皈依 发表于 2016-11-29 11:22
版主讲的有道理,先排除设置没匹配的问题,找不出的话最累最有效的办法就是拿示波器量波形 ...

用逻辑分析仪就可以了,示波器用起来比较累

使用特权

评论回复
12
皈依| | 2016-11-30 14:13 | 只看该作者
dirtwillfly 发表于 2016-11-30 14:06
用逻辑分析仪就可以了,示波器用起来比较累

额。。。逻辑分析仪还便宜

使用特权

评论回复
13
cjseng| | 2016-11-30 16:06 | 只看该作者
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别

使用特权

评论回复
14
cjseng| | 2016-11-30 16:06 | 只看该作者
libre01 发表于 2016-11-29 16:33
经过调试,发送错误帧的问题找到了,就是Answer[8]这个数组,把名字随便换掉一个就好了,比如换成Ans[8], ...

换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别

使用特权

评论回复
15
libre01|  楼主 | 2016-12-1 17:06 | 只看该作者
cjseng 发表于 2016-11-30 16:06
换个名字就好了?真奇葩!对比一下两个名字生成的汇编代码看看有什么区别 ...

是够奇葩的,中间环节全部注释掉后,直接发送Answer数组才发现这个问题的

使用特权

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

本版积分规则

28

主题

179

帖子

4

粉丝