Programação de porta serial, parte 3: depuração de porta serial na máquina virtual VMware

O Windows é a máquina host e o Linux é instalado na máquina virtual VMware. Você também pode escrever um programa no Linux para enviar mensagens para a porta serial. O princípio também é usar o software de porta serial virtual VSPM para conectar COM3 e COM4 e, em seguida, capturá-lo através do depurador de porta serial. Anexado abaixo está um exemplo de código C do programa de porta serial no Linux.


Para usar e baixar o VSPM, consulte " Programação de porta serial Parte 1: Porta serial virtual VSPM resolve problemas de programação de porta serialhttp://blog.csdn.net/zh405123507/article/details/7424877

Para o código VB de programação da porta serial, consulte " Programação da porta serial, parte 2: VB enviando dados da porta serial " http://blog.csdn.net/zh405123507/article/details/7424889


Tomando o modo de linha de comando do Ubuntu como exemplo, configure o hardware da máquina virtual no VMware. Selecione Adicionar hardware de porta serial e escolha usar a porta serial física desta máquina. Escolha de acordo com a lista de portas seriais fornecida. (Parece que apenas COM3 está disponível)




Abra o diretório "Virtual Serial Port Interconnect Plug-in" na pasta VSPM, copie vspm.ini para o diretório inicial do VSPM e substitua o arquivo de configuração original. O objetivo é permitir que o VSPM conecte COM3 e COM4 na próxima inicialização, então que pode ser usado no Windows. Use um programa para capturar a saída da COM4, ​​​​que é a entrada da COM3 na máquina virtual Linux.


Não importa se a porta serial atribuída à máquina virtual não é COM3. As últimas quatro linhas do arquivo vspm.ini são as seguintes:


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

Essas quatro portas estão conectadas em pares (a primeira linha está conectada à segunda linha, a terceira linha está conectada à quarta linha). Assim, você pode modificar o número após COM para obter o efeito desejado.


Depois de configurar o VMware e o VSPM, você pode iniciar a máquina virtual e iniciar os testes. Agora inicie o depurador de porta serial no Linux e no Windows, respectivamente, no VMware.




Agora digite o comando no Ubuntu (ou outro console Linux, o comando é universal)

echo hello > /dev/ttyS0

Se a janela de recebimento do depurador de porta serial exibir "olá", significa que o link foi bem-sucedido e você pode escrever um programa para depurar a porta serial virtual do VMware Linux.




A seguir está um programa simples de porta serial 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,发送停止*/

Após a compilação, a saída do programa é a seguinte:


==================================

Este artigo vem de: http://blog.csdn.net/zh405123507

tags: Programação de porta serial Pipeline VMware Linux


Acho que você gosta

Origin blog.csdn.net/zh405123507/article/details/7435130
Recomendado
Clasificación