Porta Serial ocupada

Post date: Nov 10, 2012 8:56:40 PM

Este artigo irá explicar um problema específico que ocorreu por questões de uma configuração "não comum".

Normalmente quando um programa deseja acessar uma porta serial e exibe uma mensagem de erro semelhante a "Serial port already open", "porta serial aberta", "serial port in use", "porta serial ocupada", significa que outro programa está usando essa porta.

Se você usar softwares da Rockwell e tem o RS Linx instalado (normalmente tem), será necessário parar ou remover os drivers que utilizam essa porta ou simplesmente fechar o RS Linx e verificar se o serviço também parou.

Outros programas também podem utilizar uma porta serial, talvez possam ser serviços do Windows.

Mas e se todos os programas foram fechados, serviços parados e mesmo assim a porta serial fica ocupada? Inclusive verificando que os processos dos softwares foram realmente encerrados?

E agora? Onde está o problema?

Recentemente ajudei um amigo a resolver um problema deste tipo. No caso dele, a porta serial estava configurada para controle de fluxo via hardware, ou seja, através dos pinos 7 (RTS - Request To Send) e 8 (CTS - Clear To Send) o sistema operacional define se está ocupada ou não, se pode enviar ou receber informações. Normalmente o controle de fluxo da porta serial está configurada para "Nenhum" (None).

Onde se configura isso?

Primeiro acesse o Gerenciadors de Dispositivos (Device Manager), e abra as propriedades da porta serial conforme a imagem abaixo:

Depois acesse a aba "Configurações" (Port Settings) conforme a imagem abaixo:

Verifique que haverá um item chamado "Controle de Fluxo" (Flow Control), que por padrão é definido como "Nenhum" (None). Use apenas a opção "Hardware" ou "Xon / Xoff" se o seu equipamento exige isso e está conectado com um cabo com a pinagem correta!