OpenEdv-开源电子网

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

stm32 串1发送数据只显示后半部分,前面的数据丢失,什么情况?

[复制链接]

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-5-17
在线时间
0 小时
发表于 2014-7-26 16:34:31 | 显示全部楼层 |阅读模式
5金钱
stm32采集传感器数据输出到pc串口助手上, 可是输出的数据都是消息的后半部分, 这个怎么弄? 
比如本应该输出$name1233test12, 可是实际输出的确是 me1233test12,這样, 前面的那个$na直接没有输出了
我在不同的波特率下输出结果不同,波特率越高输出越多
9600下输出为
3test12
115200下输出为
233test12
128000波特率时输出为
me1233test12
如果设置为256000波特率,这个是最大的波特率了
输出为ame1233test12,但是就是没有完整的输出$name1233test12

请问这是什么情况,怎么改呢? 

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

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2014-7-26 17:42:04 | 显示全部楼层
感觉一般输出最好用中断输出
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-7-26 18:23:24 | 显示全部楼层
你输出的时候,需要查看是不是成功发送了,不然就等待。
while((USART1->SR&0X40)==0);加上这句没?
站在巨人的肩膀上不断的前进。。。
回复

使用道具 举报

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-5-17
在线时间
0 小时
 楼主| 发表于 2014-7-26 20:29:29 | 显示全部楼层
回复【2楼】FantaSy_:
---------------------------------
嗯, 我把输出放到中断函数中,和接收的一起, 這样就可以正常输出了
回复

使用道具 举报

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-5-17
在线时间
0 小时
 楼主| 发表于 2014-7-26 20:34:10 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
这一句是加了的, 但是我是在串2中用中断接收, 串1输出到pc端, 串2接收完之后 中断置0,等待发送结束, 串1发送结束之后再将串2的中断置1使能串2中断接收, 這样因为我传感器模块的采样周期是1s,而1s要打印五条信息到pc上够呛, 所以到串1发送至pc完成再来使能串2接收时,传感器的第二次发送数据已经进行了一部分了,这个时候才使能串2中断接收 其实接收的就是从半路接收数据了,自燃发送到pc上就不完整了。

现在的做法是直接把发送端放到串2使能中断接收的函数中, 這样一边接受 一边发送 就可以了, 不过不知道还有没有更好的方法?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 20:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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