Pyserial nespolupracuje s MCU + binární přenos – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pyserial nespolupracuje s MCU + binární přenos – Python – Fórum – Programujte.comPyserial nespolupracuje s MCU + binární přenos – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
yaqwsx+9
Posthunter
7. 10. 2011   #1
-
0
-

Potřebuji napsat komponentu do jednoho programu v Pythonu. V této komponentě přijímám a posílám data MCU po sériové lince. Pro obsluhu sériového portu používám knihovnu Pyserial.

Pro vyzkoušení funkčnosti mám v MCU program, který jakýkoliv přijatý byte pošle zase zpátky a rozsvítí/zhasne LED. Používám převodník PL2303. Když jej zkouším pod Windows v HyperTerminalu, tak vše funguje, jak má.

Když jej však zkouším v Ubuntu v Pythonu (v terminálu), tak MCU byte přijme (tzn. rozsvítí/zhasne LED), ale už není schopen rozeznat, jaký znak to je. Zpátky mi přijde '\x00' Kód v Pythonu vypadá nějak takto:

ser = serial.Serial("/dev/ttyUSB5", 9600, timeout = 1)
ser.write("A")
ser.read(1)

Co dělám špatně?

Má další otázka je do budoucna - jak v Pythonu, resp. v Pyserial posílat číla binárně, nikoliv textově? Potřeboval bych do/z MCU posílat/přijímat 16bitové číslo. Jak na to?

Předem děkuji za odpověď

Nahlásit jako SPAM
IP: 85.160.90.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Reklama
Reklama
zlz
~ Anonymní uživatel
634 příspěvků
8. 10. 2011   #2
-
0
-

Nevím, zkusil bych si pohrát s dalšími parametry, KIIV bude vědět... :)

Na ta 16b čísla můžeš použít struct.pack/unpack.

Nahlásit jako SPAM
IP: 213.211.51.–
KIIV+42
God of flame
8. 10. 2011   #3
-
0
-

#2 zlz
jo to nevim.. pythonu se vyhybam.

V perlu sem s tim problemy nemel, nicmene prevadim vsechno na citelne retezce.

#1 yaqwsx
Je mozne ze kdyz posles "A" tak jsou to dva znaky: A a ukoncovaci \0... kdo vi - mel by se minimalne podivat po odchyceni komunikace serioveho portu (nekde na hw.cz je o seriovem portu serial a v nem byly i takovy nastroje)

pripadne si vypisovat prichozi znaky na display primo u jednocipu (pripadne posli kus kodu pro mcu)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
yaqwsx+9
Posthunter
8. 10. 2011   #4
-
0
-

Jsem z toho jelen. Když si zapnu monitorování sériového portu pomocí jpnevulatoru a teprve potom inicializuji port v Pythonu, tak všechno funguje, jak má. Když mi jpnevulator neběží, tak to nefunguje.

#3 KIIV
2 znaky se nepošlou - Python nepoužívá ukončovací \0 - proto používám i klasické uvozovky - je to pro mě pohodlnější napsat.

Nahlásit jako SPAM
IP: 85.160.64.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
KIIV+42
God of flame
8. 10. 2011   #5
-
0
-

tak mozna je to nejaka chyba v inicializaci... fakt tezko rict

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
yaqwsx+9
Posthunter
8. 10. 2011   #6
-
0
-

Budu zkoumat dál - třeba na něco přijdu. Je možné, že něco přehlížím - ono já a Linux jsme nikdy nebyli velcí kamarádi.

Nahlásit jako SPAM
IP: 85.160.64.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
yaqwsx+9
Posthunter
8. 10. 2011   #7
-
0
-

Je možné, že tento problém způsobuje virtuální počítač, ve kterém mám spuštěné Ubuntu? Nemám totiž právě po ruce PC s nainstalovaným Linuxem, tak vývoj řeším ve virtuálním PC. Převodník připojuji jako USB zařízení (jako sériový port připojit nejde).

Zkusil jsem stejný program pod Windows v Pythonu a všechno jede bezproblémů. Co je zvláštní, tak na Linuxu někdy trvá příkaz serial.Serial() někdy i 5 sekund. Původně jsem myslel, že je to normální, ale pod Windows to zatím nikdy tak dlouho netrvalo...

Nahlásit jako SPAM
IP: 85.160.64.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Pyserial na win64 — založil ok227

MCU 8051 IDE — založil Tomas.P

Vázaný seznam v MCU — založil Pavelv

OS pro MCU (RTOS) — založil babulax

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý