问题描述
//---------------------------------------初始化串口设计----------------------------- PrivateSubForm_Load()Comm1.Setting="9600,n,8,1," ’设置波特率和发送字符格式Comm1.CommPort=1 ’设置通讯串口Comm1.InputLen=0 ’设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据Comm1.InBuffersize=512Comm1.InBufferCount=0Comm1.OutBufferCount=0Comm1.Rthreshold=1Comm1.PortOpen=TrueEndSub ’打开串口//--------------------------------------给单片机发送’S’,开始通信----------------------------- PrivateSubCommand1_C1ick()Timer1.Enabled=TrueEndSubPrivateSubCommand2_C1ick()Varbuffet=“S” Comm1.Ouput=varbuffeTimer2.Enabled=TrueEndSubPrivateSubForm_Unload(CancelAsInteger)Comm1.PortOpen=FalseEndSub//---------------------------------------向单片机发送数据----------------------------- PrivateSubTimer2_Timer()Outputsignal=Str(Text2.text) ’向单片机发送数据Temp(1)=Cbyte(outputsignal)Varbuffer=tempComml.Output=varbufferTimer2.Enabled=FalseEndSub//---------------------------------------接收单片机发送的数据,并显示----------------------------- PrivateSubComm1_OnComm()SelectCaseComm1.CommEvent ’设置oncomm事件,读取片机内存的值CasecomEvReceiveInputsignal=comm1.InputText1.Text=Asc(Inputsignal) ’单片机内存的值用textbox显示出CaseElseEndselectEndSub调试很久无法发送数据给51单片机,求大神给指点,是不是发送的数据格式或是类型不对还是程序哪里不对实在找不到问题了
解决方案
解决方案二:
遇到问题先分解1.下载个串口调试助手,发送数据给单片机,看有反应吗,没反应就是协议弄错了2.把你电脑串口连接另一个电脑的串口,另一个电脑运行串口调试助手,你的电脑运行你的程序,看对方接收到的是什么数据3.如果1+2都调试好了,再结合,用你的程序去连单片机.否则你根本不知道问题到底出在哪里
解决方案三:
你这个是VB6的代码还真的不是很熟悉如果是VB.net就方便了vb.net串口比vb6的串口简单多了
解决方案四:
之前老师出现类型不配备,今天改了一天运行没有问题,但是不知道数据有木有传给单片机,我用了一个程序编写LED灯检测是否收到电脑发来的数据,灯没亮
解决方案五:
如果串口是標準的電腦9針RS232的,可以將引腳2與引腳3短接起來,然後,發送數據,看能不能接收到數據,這樣,可以簡單的判別串口的好壞,也可以簡單的差別你的程序是否真的發送出數據.
解决方案六:
建议先用串口提调试助手,测试串口、线路、51端没有问题。在调试你的程序端
解决方案七:
感觉你写得好复杂哟。其实会没有这么复杂吧。
解决方案八:
这是VB6的。