我在做串口控制的自动测试程序,下位机AVR的遥控器,发射命令到机器上,不需要接受信号,可每次产生MSComm事件返回的值总是1001(comEventBreak),属性是这样设置的,
MSComm1.CommPort = 1 '"选用com1串行口
MSComm1.Settings = "9600,n,8,1" '"波特率9600,奇校验,8位数据位,1位停止位
MSComm1.InputLen = 1 '"读取input接收缓冲区全部字节
MSComm1.InBufferSize = 1024 '"设置接收缓冲区的字节长度
MSComm1.InBufferCount = 0 '"清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '"清除接收缓冲区数据
MSComm1.InputMode = 0
MSComm1.RThreshold = 0 '"控件收到数据时将触发OnComm事件
MSComm1.SThreshold = 1
MSComm1.PortOpen = True
问题是,程序执行的时候有时机器没反应,有时又有反应,但是如果我单步执行的话又是好的,请教一下这是怎么一回事?
MSComm1.CommPort = 1 '"选用com1串行口
MSComm1.Settings = "9600,n,8,1" '"波特率9600,奇校验,8位数据位,1位停止位
MSComm1.InputLen = 1 '"读取input接收缓冲区全部字节
MSComm1.InBufferSize = 1024 '"设置接收缓冲区的字节长度
MSComm1.InBufferCount = 0 '"清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '"清除接收缓冲区数据
MSComm1.InputMode = 0
MSComm1.RThreshold = 0 '"控件收到数据时将触发OnComm事件
MSComm1.SThreshold = 1
MSComm1.PortOpen = True
问题是,程序执行的时候有时机器没反应,有时又有反应,但是如果我单步执行的话又是好的,请教一下这是怎么一回事?
解决方案 »
- 请问消息标识都有哪些啊,如何去查找
- 帮忙看看该怎么办(在线等,马上给分)
- 在设计ACTIVEX控件的时候,怎么让控件中的一个from1调用控件中的函数?
- 用VB怎样编写网络版的基于数据库的应用程序??
- 马上就要考二级了,几个简单问题高分相送!(不够还可以再加100分)大家帮忙!
- 请问大家如何实现VB导入导出TXT文件(TAB分隔的数据)到数据库中?请具体一点,最好有例子
- xmlhttp & proxy
- 哪位能帮忙看看Inet做的自动在CSDN上发贴的代码,哪有问题怎么发不上?
- 一个安装的环境问题
- 这里真好,人好,物好...什么都不错啊,不过我还有好多的问题啊...帮我吗?
- 感谢各位的长期关注和解答,在此散分答谢!
- 求一个网络控制软件
就要看avr的程序了,红外信号,误码率要根据你的电路看,还要看你的协议
试着用MSComm1.RThreshold = 1 ,即有一字节就产生oncomm事件。
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputLen = 0 '读取input接收缓冲区全部字节
MSComm1.InBufferSize = 1024 '"设置接收缓冲区的字节长度
MSComm1.InBufferCount = 0 '"清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '"清除接收缓冲区数据
MSComm1.InputMode = 0
MSComm1.RThreshold = 1 '
MSComm1.SThreshold = 1
MSComm1.PortOpen = True
End Sub
我只出来第一次,之后的事件都没有发生,参数改了N种,
最后还只是用了TIMER事件来处理
楼主考虑一下看看串口通信的书,对它应该有一个基本的了解:
http://download.csdn.net/source/1498637
http://download.csdn.net/source/1498644