Windows为宿主机,VMware虚拟机中安装了 Linux,也可以在 Linux 下编写程序对串口发送消息。原理同样是利用虚拟串口软件VSPM 将COM3与COM4连接后通过串口调试器捕获。下面会附上Linux下串口程序的C代码示例。
VSPM的使用和下载参照《串口编程之一:虚拟串口VSPM解决串口编程问题》http://blog.csdn.net/zh405123507/article/details/7424877
串口编程的VB代码请参照《串口编程之二:VB发送串口数据》http://blog.csdn.net/zh405123507/article/details/7424889
以 Ubuntu 命令行模式为例,在 VMware 下配置虚拟机的硬件。选择添加串口硬件,并选择使用本机的物理串口。根据给出的串口列表进行选择吧。(好像就只有COM3可选)
打开VSPM文件夹下的“虚拟串口互联插件”目录,将vspm.ini 拷贝到VSPM主目录并覆盖原来的配置文件,目的是使 VSPM 在下次启动时将 COM3 和 COM4 相连,这样在Windows下就可以利用程序捕获 COM4 的输出,也就是虚拟机 Linux 中 COM3 的输入。
如果你给虚拟机分配的串口不是COM3也没关系。vspm.ini 文件的最后四行如下:
COM3=127.0.0.1:7102;127.0.0.1:7101;Active;UDP_BC
COM4=127.0.0.1:7101;127.0.0.1:7102;Active;UDP_BC
COM5=127.0.0.1:7202;127.0.0.1:7201;Active;UDP_BC
COM6=127.0.0.1:7201;127.0.0.1:7202;Active;UDP_BC
这四个端口是两两相连的(第一行和第二行相连,第三行和第四行相连)。所以可以将COM后面的数字进行修改已达到你需要的效果。
如果设置好 VMware 和 VSPM 后就可以启动虚拟机开始测试啦。现在分别启动VMware下的Linux和Windows下的串口调试器。
现在,在Ubuntu 输入命令(或其他Linux控制台,命令是通用的)
echo hello > /dev/ttyS0
如果串口调试器的接收窗口有显示“hello”说明链接成功,可以编写程序来对VMware Linux的虚拟串口进行调试了。
下面是一个简单的Linux C串口程序:
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/signal.h>
#define FALSE 0
#define TRUE 1
int main()
{
volatile int STOP=FALSE;
volatile int fd;
/*类似读写文件的方式打开串口*/
fd = open( "/dev/ttyS1", O_RDWR);
if (-1 == fd){
perror(" 提示错误!");
}
/*设置串口参数*/
struct termios Opt;
tcgetattr(fd, &Opt);
cfsetispeed(&Opt,B19200); //接收波特率
cfsetospeed(&Opt,B19200); //发送波特率
tcsetattr(fd,1,&Opt);
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
Opt.c_cflag &= ~CSIZE;
Opt.c_cflag |= ~CS8;
/*开始向fd送数据*/
int c='0';
printf("send data\n");
while (STOP==FALSE) /* modem input handler */
{
c++;
c %= 255;
write(fd,&c,1); /* stdout */
usleep(100000);
}
return 0;
}
/*需要另外编写函数捕获键盘输入使STOP == FALSE,发送停止*/
编译后,程序输出如下:
===================================
本文来自:http://blog.csdn.net/zh405123507
tags:串口 串口编程 VMware Linux 管道
分享到:
相关推荐
报告包含串口调试工具的使用、Linux编程、开发板的使用、U盘挂载、Makefile文件的编写、实验总结。 实验内容: 1.自动创建节点文件。 2.红灯亮一秒----->绿灯亮一秒----->蓝灯亮一秒----->全部亮一秒,循环往复。 3....
11.2.3 VMware虚拟机环境 11.3 Linux的使用 11.3.1 Linux基本命令 11.3.2 vi编辑器的使用 11.3.3 gcc编译器 11.3.4 make工具和Makefile文件 11.4 Linux内核结构 11.4.1核心子系统 11.4.2设备驱动程序 11.5 Linux目录...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
从Windows最基本的两类驱动程序的编译、安装、调试入手讲解,非常容易上手,用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如用WinDBG和VMWARE软件对...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
用WinDBG和VMWARE软件对驱动进行源码级调试,深入Windows操作系统的底层和内核,透析Windows驱动 开发的本质。 本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,而且介绍了编程技 巧...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的...
1.3.4 设置VMware的管道虚拟串口 11 1.3.5 设置Windows内核符号表 12 1.3.6 实战调试first 13 第2章 内核编程环境及其特殊性 16 2.1 内核编程的环境 16 2.1.1 隔离的应用程序 16 2.1.2 共享的内核空间 17 ...
1.3.4 设置VMware的管道虚拟串口 11 1.3.5 设置Windows内核符号表 12 1.3.6 实战调试first 13 第2章 内核编程环境及其特殊性 16 2.1 内核编程的环境 16 2.1.1 隔离的应用程序 16 2.1.2 共享的内核空间 17 ...