Sida 1 av 2

Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 18:36:21
av Chribbe76
Jag håller på med ett projekt där jag sänder data från en pic till dator via RS232.
Det går att skicka värden från 1-255, men om jag skickar 0 så får jag ingen byte in till datorn.

Jag har mätt på RS232-tråden med oscilloscope och signalen ser korrekt ut även när jag skickar en nolla.
Jag har testat att ta emot data med Hyperterminalen och mitt egna program i visual basic med samma resultat.

Jag kör utan handshaking och paritet, det är bara 1 startbit, 8 databitar och 1 stopbit.

Har ni några ide'er om vad som kan vara fel?

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 18:45:19
av TomasL
Testa med realterm istället

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:04:59
av Chribbe76
Nu jar jag testat med realterm och fick samma resultat.

Jag är fortfarande helt lost i det här problemet.

Men tack för tipset, jag kommer nog använda realterm i fortsättningen.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:08:23
av TomasL
Är du säker på att det inte funkar, du får sätta RT i Hex-läge, för att kunna se det som inte är "skrivbart"

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:14:06
av Chribbe76
Jag förstår inte vad du menar med RT men jag har valt "Display AS HEX" så jag ser exakt vad som kommer + att jag har testat att köra capture och sen tittat på filen i en hex-editor.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:17:55
av TomasL
RT=RealTerm

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:19:17
av Chribbe76
:doh:

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:22:56
av sodjan
Den bästa lösningen vora kanske att du håller dig till
skrivbara tecken, RS232 fungerar bättre (och är mycket
lättare att felsöka) på så sätt. Det du försöker skicka är en
"null" och det vet i tusan hur det hanteras i alla led, det gäller
att du har satt upp alla delar till att vara helt transparenta.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 19:58:45
av AndLi
0 funkar såklart helt perfekt att skicka med RS232, strul blir det om man i något led i mjukvaran hanterar datan som strängar och blir förvirrad av sträntermineringen. Men att skicka 0 över en RS232 länk finns det absolut inga hinder för.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 20:05:36
av Chribbe76
Har du något exempel på program som kan läsa 0'or?
Hyperterminal och Realterm funkar iaf inte.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 20:11:26
av Stewal
Med detta program har jag nu testat skicka 0 (NUL, '00'h) till en PIC som sedan skicka tillbaka till programmet och det fungerar.
http://www.compt.ru/

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 20:29:12
av Chribbe76
Jag testade ditt exempel Stewal och det fungerade så då ska jag bara ta reda på hur man gör rätt i visual basic.

Tack!

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 20:50:37
av H.O
Använder du ReadChar eller ReadByte i VB? Jag satt nyss med lite RS232 i VB2008 och upplevde inga problem med att ta emot "0" och läsa den ur bufferten med ReadByte.

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 20:59:00
av AndLi
Chribbe76 skrev:Har du något exempel på program som kan läsa 0'or?
Hyperterminal och Realterm funkar iaf inte.
cutecom är det jag använder när jag testar kommunikationslänkar, annars är det egenskrivna java/c program som används vid seriel kommunikation.
provade gtkterm tidigare och den skriver ut rätt antal tecken men bytes efter 0x00 blir fel, mycket förvirrande..

Re: Kan ej skicka 0 via RS232 till dator

Postat: 28 mars 2010, 21:16:10
av v-g
Jag kör i VB6 och har inga problem med 0:or varken ena eller andra vägen :humm:

Iofs kör jag över RS485 just nu men det är ju ändå över en USB->serieportsadapter i början.

Kan det vara att 0 är något särskilt tecken? Det är ju ändå rätt vanligt förekommande tycker jag :humm: