Ir ao conteúdo
  • Cadastre-se
Caique Portela

Função que retorna valor da porta serial

Recommended Posts

Estou fazendo um projeto com arduino, ele processa alguns dados e envia esses dados pelo cabo USB.

Estou resgatando esses dados em C, porém preciso de uma função que retorne o valor passado via porta serial, mas está dando erro. Olhe o código:

#include <stdio.h>

char ret(int num){
char re[1];
if((num>=48) && (num<=57) || (num>=65) && (num<=90) || (num>=97) && (num<=122)){
sprintf(re, "%c", num);
return re[0];
}
}

char* ler()
{
FILE *port;
port=fopen("/dev/ttyACM0", "r");
int ge,j;
char *te;
for(j=0;j<=11;j++){
ge = fgetc(port);
te[j] = ret(ge);
}
te[12] = '\0';
return te;
}


int main(void){
char *gcc = ler();
printf("%s", gcc);

}

Esse é um código para testes! O real tem muito mais linhas, porém não afetam o problema.

Quando compilo não da nenhum erro, porém quando executo aparece:

Falha de segmentação (imagem do núcleo gravada)

Eu sou iniciante em C, porém preciso de ajuda urgente com isso. É um projeto que será apresentado nesse final de semana, e nessa quinta-feira ele será vistoriado e terá que estar funcionando.

Pro favor me ajudem!

Obs: Eu consigo ler a porta por linhas diretas, porém preciso de uma função que faça isso para ser usada em um loop. O loop ficará verificando se o dado recebido é igual a um pré-determinado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×