//Delphi+MSComm控件串口收发程序
创新互联建站专注于七台河网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供七台河营销型网站建设,七台河网站制作、七台河网页设计、七台河网站官网定制、微信小程序开发服务,打造七台河网络公司原创品牌,更为您提供七台河网站排名全网营销落地服务。
//HotPower@126点抗
procedure TForm1.FormCreate(Sender: TObject);
begin
if MSComm1.PortOpen then MSComm1.PortOpen := false;//关闭端口
MSComm1.CommPort := 2;//设置端口2
MSComm1.InBufferSize := 256;//设置接收缓冲区为256个字节
MSComm1.OutBufferSize := 256;//设置发送缓冲区为256个字节
MSComm1.Settings := '9600,n,8,1';//9600波特率,无校验,8位数据位,1位停止位
MSComm1.InputLen := 0;//读取缓冲区全部内容(32个字节)
MSComm1.InBufferCount := 0;// 清除接收缓冲区
MSComm1.OutBufferCount:=0;// 清除发送缓冲区
MSComm1.RThreshold := 32;//设置接收32个字节产生OnComm 事件
// MSComm1.InputMode := comInputModeText;//文本方式
MSComm1.InputMode := comInputModeBinary;//二进制方式
MSComm1.PortOpen := true;//打开端口
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MSComm1.PortOpen then MSComm1.PortOpen := false//关闭端口
end;
procedure TForm1.MSComm1Comm(Sender: TObject);
var
buffer: Olevariant;//MSComm1.InputMode = comInputModeBinary
str: string;//MSComm1.InputMode = comInputModeText
i: integer;
begin
case MSComm1.CommEvent of
comEvReceive: //串行接收事件处理
begin
if MSComm1.InputMode = comInputModeText then //字符方式读取
str := MSComm1.Input//读出后会自动清除接收缓冲区,str[1]~str[32]
else //二进制方式读取
buffer := MSComm1.Input;//读出后会自动清除接收缓冲区,buffer[0]~buffer[31]
Edit3.Text := '';
for i := 0 to MSComm1.RThreshold - 1 do //32字节Hex转换
begin
if MSComm1.InputMode = comInputModeText then //单行字符转换
Edit3.Text := Edit3.Text + inttohex(byte(str[i + 1]), 2) + ' '
else //单行二进制数据转换
Edit3.Text := Edit3.Text + inttohex(buffer[i], 2) + ' ';
end;
Memo2.Lines.Add(Edit3.Text);//加入一行显示
end;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: integer;
begin
Edit4.Text := '';
for i := 0 to 31 do
begin
MSComm1.Output := char(i);//发送一个字符
Edit4.Text := Edit4.Text + inttohex(i, 2);//以十六进制字符显示
end;
Memo1.Lines.Add(Edit4.Text);//加入一行显示
end;
打印机端口查看方法如下:
1、进入“控制面板”-“设备和打印机”;
2、右键需要查看的打印机,选择“属性”;
3、选择”Web服务“,即可查看IP端口。
1.如果打印机有window驱动,可安装驱动后在VB中直接调用printer来打印,如我们常用的A4纸打印机就可以这样做;
2.如果是没有驱动软件的串口打印机,可在VB中采用串口通讯的方式发送需要打印的内容
有个PrintDocument控件,可以实现打印。。。
MSDN原话:
使用 PrintDocument 组件
涉及 PrintDocument 组件的两种主要情况是:
简单的打印作业,如打印单个文本文件。在这种情况下,应将 PrintDocument 组件添加到 Windows 窗体,然后在 PrintPage 事件处理程序中添加打印文件的编程逻辑。 该编程逻辑应以使用 Print 方法打印文档结束。
此方法向打印机发送一个 Graphics 对象,该对象包含在 PrintPageEventArgs 类的 Graphics 属性中。
有关如何使用 PrintDocument 组件打印文本文档的示例,请参见
如何:打印 Windows 窗体中的多页文本文件。
更为复杂的打印作业,如想要重新使用已编写的打印逻辑的情况。
在这种情况下,应从 PrintDocument 组件派生一个新组件,并重写
(请参见 Visual Basic 的 重写或 C# 的 重写) PrintPage 事件。
将 PrintDocument 组件添加到窗体后,它出现在 Windows 窗体设计器底部的栏中