Go Down

Topic: Comunicação Serial "simultânea" não funcionando no Arduino Mega (Read 1 time) previous topic - next topic

bubulindo

Podes... mas isso é uma má prática de programação. Custa muito escrever Serial.flush()??
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Osias Neto

#6
Jan 25, 2012, 01:32 pm Last Edit: Jan 25, 2012, 01:34 pm by Osias Neto Reason: 1
Quote
Podes... mas isso é uma má prática de programação. Custa muito escrever Serial.flush()??

Se eu precisar trocar a porta de Serial1 para Serial3 por exemplo, só precisarei alterar uma linha... O software completo usa outras vezes as seriais,
este código que postei, é na verdade uma função chamada para testar as seriais, eu a coloquei dentro de um while e quando eu aperto um botão ele sai da função normalmente,
ou seja, não trava. Porém a comunicação serial não funciona em nenhum ponto do software, apenas a I2C, SPI e PWM estão normais...


Acabei de testar o seguinte:
Code: [Select]

if (Serial2.available()>0)
{
   Serial.print( Serial2.read());
   Serial.print("c");
}

else
{
   Serial.print("a");
   Serial2.print("b");
}

Não imprime nada no serial monitor, a função "Serial.print" também parece não estar funcionando!

Alguma ideia?

Osias Neto

Descobri... eu não sabia que é necessário pull ups nessas linhas :P
Na comunicação I2C funciona sem pull up, só é necessário se houver ruídos etc.

De qualquer forma, obrigado pela ajuda :)

bubulindo


Na comunicação I2C funciona sem pull up, só é necessário se houver ruídos etc.


Errado, a comunicacão I2C não funciona sem pull ups. A libraria do Arduino activa os pull ups internos e faz com que tudo funcione "magicamente".


Se eu precisar trocar a porta de Serial1 para Serial3 por exemplo, só precisarei alterar uma linha...


Ahhh, que giro... só precisas de alterar uma linha? Eu vi duas no teu exemplo... e nem sequer tinhas as funcões para ler e escrever. Essas também têm de ser mudadas, ou não? O que estou a tentar dizer é que na tentativa de "poupar trabalho", vais arranjar ainda mais problemas. Não vale a pena e é uma má prática.

Não te confundiste com as portas série? Vejo para aí imensas portas série e não sei se inicializaste todas ou alguma.



Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

mmoscz

Não há "serial" no arduino mega, apenas serial1, serial2, serial3
Se bem lembro, no arduino mega, há 3 UART e não 4 para existir serial. serial1. serial2. serial3
Talvez esse seja o problema, está a tentar receber dados de uma serial que não existe...

http://arduino.cc/en/Serial/Begin

[errata] realmente, o MEGA tem 4 UART e não 3, desculpe. [/errata]
4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP

Go Up