Ir ao conteúdo
  • Cadastre-se

Função que retorna valor da porta serial


Caique Portela

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!