[C#] Char verzenden over seriële poort

Pagina: 1
Acties:

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 19-10-2025
Ik ben bezig met een app die data over de seriële poort verstuurt naar een microcontroller, die op zijn beurt weer 32 ledjes aanstuurt, ik stuur eerst "start" en de 4 bytes die daarop volgen stellen ieder 8 ledjes in.

Ik doe dit op de volgende manier:

C#:
1
2
3
char sendchar;
sendchar = (char)GlobalVariables.state;
serialPort1.Write("start" + sendchar + sendchar + sendchar + sendchar);


Nu gaat dit prima als GlobalVariables.state 127 of lager is, maar daarboven wordt steeds het getal 63 verstuurd, dit heb ik bevestigd met de oscilloscoop.

Wat kan ik hieraan doen?

[ Voor 6% gewijzigd door bobo1on1 op 16-04-2006 22:17 ]

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Heb je de data- en stopbits goed ingesteld? Als je waarden van meer dan 127 wil versturen, dan zul je natuurlijk wel 8 databits tot je beschikking moeten hebben.

Misschien heb je hier ook wat aan.

[ Voor 25% gewijzigd door NMe op 16-04-2006 22:45 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • FlyEragon
  • Registratie: Oktober 2003
  • Laatst online: 20-02 15:02

FlyEragon

Alien Monkeys

Kan je niet even proberen om een int te sturen, mischien gebruik je een codering die van -63 t/m 63 gaat

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 19-10-2025
Ja de data en stopbits staan goed, het aantal stopbits maakt niet eens zoveel uit.

Maar ik heb het al opgelost, ik had over het hoofd gezien dat de write methode van de serialport class ook een array van bytes accepteert, ik heb nu dus:

C#:
1
2
3
4
5
6
7
8
byte[] sendbyte = new byte[4];
sendbyte[0] = (byte)GlobalVariables.state;
sendbyte[1] = (byte)GlobalVariables.state;
sendbyte[2] = (byte)GlobalVariables.state;
sendbyte[3] = (byte)GlobalVariables.state;

serialPort1.Write("start");
serialPort1.Write(sendbyte, 0, 4);

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.