这是典型的VB串口通信
你可以采用Mscomm控件实现串口通信时,首先添加一Mscomm控件到窗体中,通过菜单项“工程(P)→部件(O)”进入选择窗口,在控件页中选取“Microsoft Comm Control 60” ,此时工具窗口中出现Mscomm图标,即可被使用。
需要注意的几点是:
1用mscomm控件进行通信,其波特率最高只能设为115200
2利用MSCOMM控件可以发送和接收任何文件的类型。
3接收文本文件和二进制文件有一定的区别,接收二进制文件时用scomm1Input读入的变量需用Variant类型的变量,而文本文件可以用字符型变量,另外InputMode属性应设置相应的文本方式或二进制方式
4接收文本无大小限制。
5当连续存数据时记录号是自动加的,但当文件关闭后再次打开时,默认的记录号为1,存储文件不完整的原因可能在此。接收到文件头识别字符时打开文件,接收中途不要关闭文件,直到接收到文件结束符(Mscomm1EOFEnable事件发生)才能关闭文件。
我手头有一个完整的VB串口通信源码,对你的问题很有帮助
若你需要,发邮件至donook@qqcom
我会尽快发给你
如果满意,加点分哦,资料都来之不易的呵呵
len=safearray_inpGetOneDimSize(); //得到有效的数据长度
for(k=0;k<len;k++)
safearray_inpGetElement(&k,rxdata+k);
这里有问题,你想一下,假如你的数据很多,超出了你的rxdata容量(rxdata只有512字节),这里就会把栈写坏了嘛,这里拿到了len后要做一下判断,不能直接safearray_inpGetElement(&k,rxdata+k);
如果与电脑连接的话,直接用单片机通过max232与电脑连接就行啦
如果用485,电脑端、单片机都要加个485芯片转成485才能通信
电路图如图,
把其中一端改成电脑并加个232转485模块就行啦,
单片机端程序
#include <reg51h>
#define uchar unsigned char
sbit sendkey=P2^0;
unsigned char tempy;
void init(void)//串口初始化
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
PCON=0x00;
TCON=0x40;
TR1=1;
SCON=0x50;
}
void main()
{
init();
while(1)
{
//------------------
//485接收字符
sendkey=0;
while(RI==0);
tempy=SBUF;
RI=0;
//------------------
//485发送字符
sendkey=1;
SBUF=tempy;
while(TI==0);TI=0;
//-------------------
}
}
好好检查下你的硬件
程序我没有改
运行效果见图
晶振110592MHz
以上就是关于vb程序编写模拟串口全部的内容,包括:vb程序编写模拟串口、VS2008MFC写的一个串口程序、求AT89C52单片机用MAX485与PC机串口通讯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)