串口通信(多字节)接受不完全问题

taosao19990926 2015-08-25 03:35:28
我用的是网上的例程,keil尝试通信,当vb.net发1,单片机会发送10回来。当vb.net发2,单片机发送2000至net。发送1的时候没有问题。

但是发送2的时候就有问题了,16进制根本接受不全,会有好多00出现。(有时候正确,有时候又有错误)

这是例程

有两个问题:
1、如何使得十六进制那里能够正确显示原来的值
2、想把十进制那里直接变成2000,现在只是简单的一个字节一个字节变化,想直接显示2000

新手真心求教
...全文
1550 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨狗先飞 2015-08-26
  • 打赏
  • 举报
回复
学过C应该就知道printf怎么用,只不过在keil里printf不是向屏幕输出,而是向串口输出,用法和C语言书上一样
of123 2015-08-26
  • 打赏
  • 举报
回复
用串口调试助手之类的软件试试,注意接收区选择 16 进制显示。搞清楚是上层接收显示的问题,还是底层发送的问题。
taosao19990926 2015-08-26
  • 打赏
  • 举报
回复
引用 6 楼 bakw 的回复:
keil里这代码就写得不怎么好,你怎么不用printf或者putch来输出呢,你还是先用串口调试器把下位机通讯调稳定之后再来解决上位机程序比较好
小弟刚学串口通信这块,不太清楚如何使用printf或者putch输出,能给一个比较简单的例程吗,比如就向串口循环输出上面三个数。
笨狗先飞 2015-08-26
  • 打赏
  • 举报
回复
keil里这代码就写得不怎么好,你怎么不用printf或者putch来输出呢,你还是先用串口调试器把下位机通讯调稳定之后再来解决上位机程序比较好
taosao19990926 2015-08-26
  • 打赏
  • 举报
回复
还有个严重的问题.单是发送一个数据,vb可以成功读取,比如下图48000000


但是发送多个时候就不行了。比如下图,vb。net接受那一栏显示的就一个-1.求教如何解决。
taosao19990926 2015-08-26
  • 打赏
  • 举报
回复
十进制那里还是有问题,思考ing。。。
taosao19990926 2015-08-26
  • 打赏
  • 举报
回复
多谢,自己已经解决了,在datareceived事件里面增加threading.thread.sleep就好了。应该接受不完全的问题~
taosao19990926 2015-08-25
  • 打赏
  • 举报
回复
顶啊。咋滴没人呢。。。

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧