none
C# sériová linka

    Obecná diskuse

  • Ahoj,

    vtyvářím analyzátor PWM signálu, jeho součástí je komunikace mezi mikropočítačem (program v C) a PC (aplikace v C#) po sériové lince. Používám Visual Studio 2008, WindowsFormsApliccation. Pro nastavení sériové linky jsem využil SerialPort v nabídce ToolBox. A teď k problému:

    po sériové lince vysílám z mikropočítače 4 bajty, hodnoty "15000" a "5001", každou z nich rozloženou na 2 bajty, takže vysílám opakovaně "0x3A", "0x98", "0x13", "0x89". Z mikropočítače se vše vysílá v pořádku. Na PC v C# aplikaci přijmu: "0x3A", "0x98", "0x89", "0x3A". Hodnota "0x13" se mi nějak ztratí a přijímám tedy bajt jakoby z následujího měření...

    Ale pokud na mikropočítači k hodnotě "0x13" přičtu třeba "5", vyšlu,  C# aplikace to bez problémů přijme, a odečtu hodnotu 5 a výsledek je tedy zase 0x13. 0x13 ale není jediné číslo které mi tento problém dělá...

    Velice děkuji za radu,

    David

    • Změněný typ Bouwi 6. června 2011 8:55
    4. června 2011 17:29

Všechny reakce

  • Tak problém jsem jen pro informaci vyřešil, chyba byla v nastavení Handshake sériové linky. Řídící byty XOn a XOFF (hodnoty 0x13 a 0x11) se musí vypnout, jinak se tyto hodnoty jako data nepřijmou.

     

    David

    6. června 2011 8:57