OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3279|回复: 6

stm32f407串口发送一个结构体数据没问题,但连续发就有问题

[复制链接]

1

主题

1

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-12-3
在线时间
19 小时
发表于 2020-4-8 14:38:09 | 显示全部楼层 |阅读模式
5金钱
我是用STM32f407与一个光学设备通过RS232通信,通信协议定义成了一个64字节的结构体,然后使用usart2进行数据发送和接收(DMA)(无中断),第一次发送结构体的时候完全正确,设备返回的数据(也是64字节)也都对着;但是我连续发送两个结构体消息的时候就出问题了,采用printf调试,第二个消息显示共发送了128个字节,这是什么原因呢?请各位帮帮忙,谢谢! 2.jpg 1.jpg




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-4-9 01:04:30 | 显示全部楼层
仿真找问题, 另外, 用串口调试助手看下。
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
859
金钱
859
注册时间
2015-2-12
在线时间
353 小时
发表于 2020-4-9 09:50:41 | 显示全部楼层
你这个 J 是静态变量,所以出问题了。建议在此案例中,data i j不要设置成静态变量,不需要如此。
回复

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2019-11-28
在线时间
68 小时
发表于 2020-4-9 10:43:49 | 显示全部楼层
date i j 是静态变量了,调用函数后不会释放变量数据还是原来的值
回复

使用道具 举报

12

主题

129

帖子

0

精华

高级会员

Rank: 4

积分
947
金钱
947
注册时间
2018-4-5
在线时间
71 小时
发表于 2020-4-9 11:03:27 | 显示全部楼层
同上,主要问题在于静态变量static ,解决办法取消static或者每次进入程序后,手动将i和j清零
保守秘密,守望共济,等价交换,尊重知识,探求真知。
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-12 22:07:50 | 显示全部楼层
你的j static了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 05:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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