Não estou a conseguir ler o que o Arduíno envia, estou a usar este código, já experimentei com o ReadChar, ReadExisting entre outros e nada, será que alguém me pode ajudar e ver se tenho aqui alguma coisa mal no código?

 

namespace teste_m

 {

    public partial class Form1 : Form    

{        

      public Form1()        

        {             InitializeComponent();

        }

         

SerialPort porta;        

private void Form1_Load(object sender, EventArgs e)        

{            

porta = new SerialPort("COM11", 9600);            

porta.ReadTimeout = 10;            

porta.Open();            

timer1.Start();        

}

        private void timer1_Tick(object sender, EventArgs e)        

{

            try           

  {                

             listBox1.Items.Add(porta.ReadChar().ToString()+System.DateTime.Now);

            }            

           catch            

           {

            }        

     }    

} }

Exibições: 359

Responder esta

Respostas a este tópico

Não tenho o C# mas isso está parecendo que você não definiu corretamente as FLAGs do componente que faz a leitura da serial.

Eu quando utilizo tenho que ligar uma FLAG para executar o evento READ quando chegar um determinado caracter, eu sempre coloco o #10 (retorno de linha), de uma olhada nisso

Nunca vi nada de C#, mas já recebi dados do arduino usando outras linguagens (C e PHP) e funcionou muito bem. Pesquise sobre as funções:

fopen("COM11", "r"); // Abre a porta em mode de apenas leitura

fgetc(); // Lê os valores passados pela porta, e retorna em inteiro (Você poderá exibir da maneira que quiser, pois os números tem valores na tabela ASCII)

Espero que ajude!

A diferença do C e do PHP para o C# é que ele precisa usar um evento, pode ser a leitura de um (1) caracter ou BYTE ou a recepção de um caracter específico

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço