Rotinas Write, Read da porta Serial c/ API Windows

Programação C em geral

Moderadores: 51, guest2003

Rotinas Write, Read da porta Serial c/ API Windows

Mensagempor rubenprom » 27 Jun 2007 21:28

Pessoal

Gostaria saber, se alguem tem um exemplo basico, de como Escrever, Ler dados pela porta serial, sem ter que usar o componente Comport, e sim as funçoes API do Windows. Se alguem puder postar algumas funcoes ja prontas.

Ja visitei a pagina do rogercom (www.rogercom.com), que tem um exemplo no C bUilder, eu mudei algumas coisas, mas nao tou entendendo tao ao certo tudo. Se alguem tiver algo mais simples

Desde ja meu agradescimento

Att

Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor marcelo » 27 Jun 2007 22:03

Entra no Rogercom. ele tem algumas rotinas utilizando diretamente a serial pelas funçoes que acessam a API.

Inclusive ele explana ate com alguns exemplos, e mostra as rotinas em DELPHI, VB e C++ Buider.

www.rogercom.com

Acesse a opção "SERIAL" no menu lateral esquerdo.

[]s,

Marcelo.
marcelo
Bit
 
Mensagens: 42
Registrado em: 11 Out 2006 14:50
Localização: São Paulo

Mensagempor rubenprom » 27 Jun 2007 22:11

Opa Marcelo:

Obrigado pela sua resposta tao rapida. Pois bem, eu entrei nesse site do rogercom, testei, aquele programa RComAcess, mas quando mando uma unica string (caracter) ele me retorna no StrComandos invalida.Qaudno conectado com o hardware.
Ja teste meu hardware com o hyperteminal e funcina corretamente, assim que nao eh problema de hardware ou equipamento

mas mesmo assim, valeu pela dica

att

Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor marcelo » 27 Jun 2007 22:29

Como vai Rubem ?

O programa RcomAccess, é um programa de terminal, tipo o hyperterminal do windows.

O que estou me referindo, é o que vc perguntou, sobre as funções de acesso direto do hardware pela porta serial. estes exemplos, estao no final do artigo.
O artigo é:
CONECTANDO 8 TECLADOS NA PORTA SERIAL ATRAVÉS DE UM MICROCONTROLADOR PIC 16F877 PARA CONTROLE DE ACESSOS.

No final de cada pagina, tem um botão "proxima". se não me engano na quarta pagina, ele exemplifica o que te falei. segue um trecho:

CreateFile()
Utilizada para abrir a Porta Serial.

CloseHandle()
Utilizada para fechar a Porta Serial.

ReadFile() e WriteFile()
Utilizadas para lê e enviar dados através da Porta Serial.

GetCommState() e SetCommState()
Utilizadas para obter e alterar as configurações da Porta Serial, como velocidade, bit de dados, paridade etc.

BuildCommDCB()
Utilizada para preencher os campos da estrutura DCB com valores especificados numa string de controle de dispositivos.

GetCommTimeouts() e SetCommTimeouts()
Utilizadas para obter e alterar os parâmetros atuais de Timeouts associados às funções WriteFile() e ReadFile();

Qualquer dúvida, estamos aí.


[]`s.

Marcelo.
marcelo
Bit
 
Mensagens: 42
Registrado em: 11 Out 2006 14:50
Localização: São Paulo

Mensagempor rubenprom » 27 Jun 2007 22:36

Marcelo , tudo bem??

Valeu Marcelo, tinha visto isso, mas tinha pulado varias vezes!

é verdade!, bah te agrasdeço de novo, vou tentar resovler isto com estas funções lá do site. Tou na pagina agora.
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Exemplo com a porta serial

Mensagempor quispe » 24 Jul 2007 11:12

Olá ruben prom

eu sou professor do Senai Anchieta e ministro as disciplinas de Programação, microcontroladores, projetos e robótica. Tenho alguns exemplos e notas de aula sobre a porta serial usando a API do windows. Me mande um email no vendas@qsptecnologia.eng.br que irei te responder com um anexo dos exemplos que eu tenho. Vai sair tambem um artigo na saber eletronica sobre a porta serial que eu estou escrevendo. Abraço
quispe
Nibble
 
Mensagens: 83
Registrado em: 10 Mai 2007 11:31

Mensagempor andre_luis » 24 Jul 2007 11:55

Ruben,

A modificacao mais drástica que fiz na rotina do Rogercom para funcionar, foi mudar o tamanho do buffer de recepção para '1'.

Assim, toda vez que recebia um único caractere, o tratamento passou a ser feito pelo protocolo implementado por mim, ao invez de utilizar a função stringcomp da vida, usada por ele.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x