Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Valmir Knasel

Alguem sabe como controlar dispositivos com a Linguagem C?

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/excl.gif Eu estou desenvolvendo um projeto todo em C, e estou precisando de ajuda para saber como posso enviar/receber dados para/pela porta serial, paralela ou USB. Alguém pode me ajudar? É pq tô pensando o seguinte: um programa que gerencia os dados recebidos de um dispositivo qualquer. Com base nesses dados, o usuário pode tomar algumas decisões, no caso o computador irá mandar a resposta de volta para o dispositivo, fazendo com que ele, o dispositivo, com base na resposta recebida, execute tal ação predefinida para aquela resposta.

Será que alguém tem alguma idéia de como eu posso começar?

http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif Ah, eu faço Análise e Desenvolvimento de Sistemas, e estou em um nível intermediário de C e manjo um pouco de eletronica!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode acessar as portas COM1... com os comandos de arquivo CreateFile, WriteFile, ReadFile...

 

#include <windows.h>

int
main(int argc, char *argv[])
{
  DCB dcb;
  HANDLE hCom;
  BOOL fSuccess;
  char *pcCommPort = "COM2";

  hCom = CreateFile( pcCommPort,
					 GENERIC_READ | GENERIC_WRITE,
					 0,	// comm devices must be opened w/exclusive-access
					 NULL, // no security attributes
					 OPEN_EXISTING, // comm devices must use OPEN_EXISTING
					 0,	// not overlapped I/O
					 NULL  // hTemplate must be NULL for comm devices
					 );

  if (hCom == INVALID_HANDLE_VALUE) {
	  // Handle the error.
	  printf ("CreateFile failed with error %d.\n", GetLastError());
	  return (1);
	}

  // We will build on the current configuration, and skip setting the size
  // of the input and output buffers with SetupComm.

  fSuccess = GetCommState(hCom, &dcb);

  if (!fSuccess) {
	  // Handle the error.
	  printf ("GetCommState failed with error %d.\n", GetLastError());
	  return (2);
	}

  // Fill in the DCB: baud=57,600 bps, 8 data bits, no parity, and 1 stop bit.

  dcb.BaudRate = CBR_57600;	 // set the baud rate
  dcb.ByteSize = 8;			 // data size, xmit, and rcv
  dcb.Parity = NOPARITY;		// no parity bit
  dcb.StopBits = ONESTOPBIT;	// one stop bit

  fSuccess = SetCommState(hCom, &dcb);

  if (!fSuccess) {
	  // Handle the error.
	  printf ("SetCommState failed with error %d.\n", GetLastError());
	  return (3);
	}

  printf ("Serial port %s successfully reconfigured.\n", pcCommPort);
  return (0);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Omar, vou dar uma olhada no seu código e qualquer dúvida que eu tiver eu postarei aqui!!!

 

Valew!!! Você está contribuindo para a melhoria da humanidade, um dia você vai ouvir falar de um

 

doido :blink: de Roraima que Revolucionou a história da informática no mundo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.