发新帖我要提问
12
返回列表
打印
[STM32F1]

STM32F103的串口发送多字节问题

[复制链接]
楼主: zhxingyu
手机看帖
扫描二维码
随时随地手机跟帖
21
uiint| | 2017-7-14 09:44 | 只看该作者 回帖奖励 |倒序浏览
调试的时候有问题,正常运行没有问题就行。

使用特权

评论回复
22
zhuannng| | 2017-7-14 10:15 | 只看该作者
给你一个思路,首先,20个字节发送没有问题,说明硬件是通的。超过就出问题了,我相信更可能是硬件之上的软件出了问题。你可以打印发送和接收的数据,贴出来,另外断开plc,用示波器测量,如果可以的话,断开调试器,再测量。大概意思就是在没有办法的情况下,尽量少的排除其他机器对本机的干扰。

使用特权

评论回复
23
小了个明| | 2017-7-15 16:34 | 只看该作者
检查一下你的串口发送缓存的长度
变量莫名其妙变化大部分都是程序溢出造成的

使用特权

评论回复
24
gbchang| | 2017-7-15 18:21 | 只看该作者
"调试小窗口可以看到变量值在无规律的跳变". 当然会这样了.
你在全速运行时, (KEIL或其它IDE)变量监视窗口能刷新已经很给面子了, 就不要奢求实时刷新了,
关键是就算实时刷新, 变化那么快, 人眼睛也看不到呀? 还记得电影的24帧原理吧~

开发工具大同小异, 建议选一个适合自己的摸透它.

使用特权

评论回复
25
gbchang| | 2017-7-15 18:27 | 只看该作者
本帖最后由 gbchang 于 2017-7-15 18:28 编辑

如果变量不是静态的, 那就是堆栈里的, 那随机就显然的了.一般在全速运行期间观察到变量出现非预期变化时, 就要设断点慢慢找问题了.

使用特权

评论回复
26
zhxingyu|  楼主 | 2017-7-18 08:36 | 只看该作者
这段时间有点忙,进来看到这么多回复,在此多谢各位的回复!定义为volatile int para[34];初始化是从EEPROM读取赋值给para,在通讯时如果没有写值是不会改变para值的,有个奇怪的现象是如果一帧发送28字节,para[0]和para[1]的值在无规律的变,如果一帧发送14个字节就仅para[0]变,para[1]不变。

使用特权

评论回复
27
一般发生跳变的 可能是两边串口没共地和基准电压不一样,楼上有位大神说得很对

使用特权

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

本版积分规则