[STM32F1] STM32F103的串口发送多字节问题

[复制链接]
5187|26
uiint 发表于 2017-7-14 09:44 | 显示全部楼层
调试的时候有问题,正常运行没有问题就行。
zhuannng 发表于 2017-7-14 10:15 来自手机 | 显示全部楼层
给你一个思路,首先,20个字节发送没有问题,说明硬件是通的。超过就出问题了,我相信更可能是硬件之上的软件出了问题。你可以打印发送和接收的数据,贴出来,另外断开plc,用示波器测量,如果可以的话,断开调试器,再测量。大概意思就是在没有办法的情况下,尽量少的排除其他机器对本机的干扰。
小了个明 发表于 2017-7-15 16:34 | 显示全部楼层
检查一下你的串口发送缓存的长度
变量莫名其妙变化大部分都是程序溢出造成的
gbchang 发表于 2017-7-15 18:21 | 显示全部楼层
"调试小窗口可以看到变量值在无规律的跳变". 当然会这样了.
你在全速运行时, (KEIL或其它IDE)变量监视窗口能刷新已经很给面子了, 就不要奢求实时刷新了,
关键是就算实时刷新, 变化那么快, 人眼睛也看不到呀? 还记得电影的24帧原理吧~

开发工具大同小异, 建议选一个适合自己的摸透它.
gbchang 发表于 2017-7-15 18:27 | 显示全部楼层
本帖最后由 gbchang 于 2017-7-15 18:28 编辑

如果变量不是静态的, 那就是堆栈里的, 那随机就显然的了.一般在全速运行期间观察到变量出现非预期变化时, 就要设断点慢慢找问题了.
 楼主| zhxingyu 发表于 2017-7-18 08:36 | 显示全部楼层
这段时间有点忙,进来看到这么多回复,在此多谢各位的回复!定义为volatile int para[34];初始化是从EEPROM读取赋值给para,在通讯时如果没有写值是不会改变para值的,有个奇怪的现象是如果一帧发送28字节,para[0]和para[1]的值在无规律的变,如果一帧发送14个字节就仅para[0]变,para[1]不变。
冷冷清清的什么 发表于 2019-8-6 11:59 | 显示全部楼层
一般发生跳变的 可能是两边串口没共地和基准电压不一样,楼上有位大神说得很对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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