Pokaždé, když připojíte nový COM zařízení nebo zařízení USB (platí pro modem, mobilní telefony, Bluetooth, převodníky ze sériových na USB atd.), systém Windows to detekuje pomocí mechanismu Plug-n-Play a přiřadí mu určité Číslo portu COM v rozmezí 1 až 255. Při opětovném připojení stejných zařízení je tomuto portu přiřazen dříve vyhrazený port COM. Novým zařízením je přiděleno první neobsazené číslo portu COM. Není neobvyklé, když externí zařízení při připojení vytvoří několik COM portů najednou (v mém případě se po připojení Bluetooth adaptéru hned v systému objevilo 10 !!!! nových COM portů).
Řada aplikací (obvykle docela starověkých) je schopna adresovat pouze dvouciferná čísla COM portů, odmítajíc pracovat s COM100 a vyššími. Ve většině „běžících“ verzí tyto programy správně fungují pouze na portech s COM1-COM9. Co dělat, když připojené zařízení obdrží vysoké číslo? Mohu resetovat číslování vyhrazených portů COM a odstranit přiřazené porty? Zkusme přijít na příklad systému Windows 7.
Obsah:
- Změňte číslo portu COM pro konkrétní zařízení
- Obnovení vazeb portu COM prostřednictvím registru
Zpravidla není možné změnit vydaný COM port na jiný ve vlastnostech zařízení, protože systém píše, že všechny "nízké" porty COM jsou již používány (jsou používány).
Změňte číslo portu COM pro konkrétní zařízení
Nejprve byste se měli pokusit ručně předefinovat číslo portu COM pro konkrétní zařízení COM. Předpokládejme, že požadovaný port COM je již odebrán a my se jej pokusíme uvolnit.
- Spusťte Správce zařízení tímto způsobem:
set devmgr_show_nonpresent_devices = 1
start devmgmt.msc
- V nabídce konzoly vyberte Zobrazit->Zobrazit skrytá zařízení.
- Rozbalte větev Porty (Com & LPT) a v seznamu najděte zařízení, ke kterému je přiřazen požadovaný port COM (bledá ikona znamená, že je tento port COM přiřazen, ale v tuto chvíli není toto zařízení připojeno). Klikněte na něj pravým tlačítkem a vyberte Odinstalovat
- Uvolněný port COM lze přiřadit jinému zařízení. Najděte své zařízení ve stejné větvi, otevřete jeho okno vlastností (Vlastnosti) Poté přejděte na kartu Port Nastavení a stiskněte tlačítko Pokročilé. V rozevíracím seznamu vyberte nepoužívaný port COM.
Výše uvedená metoda ne vždy uvolní rušný COM port. V tomto případě se budete muset uchýlit k úpravám registru.
Obnovení vazeb portu COM prostřednictvím registru
Informace o použitých COM portech jsou uloženy v klíči registru. CommDB v sekci HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Arbiter
- Otevřete Editor registru (regedit) a přejděte na zadanou větev.Je důležité! Důrazně doporučujeme, abyste si tuto větev registru nejprve zazálohovali (Soubor -> Exportovat) V případě, že se něco pokazí, můžete se vrátit k původní konfiguraci portu..
- Hodnota parametru Comdb definuje seznam portů COM rezervovaných v systému v binárním formátu. Každý bit určuje stav odpovídajícího portu (od 1 do 255). Pokud například potřebujeme opustit rezervaci pouze pro COM3, bude hexadecimální hodnota ComDB 04 (0000 0100)Je důležité! Buďte velmi opatrní, v žádném případě k tomuto parametru nepřidávejte další bajty, jinak by systém mohl začít klesat v BSOD.
- Pokud potřebujete úplně obnovit všechny vazby COM, změňte hodnotu klíče ComDB na 0.Poznámka:. V sekci HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM uvidíte seznam portů COM připojených k systému.
- Ve větvi HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Ports obsahuje seznam přiřazených portů COM. Všechny zbytečné porty lze smazat (v našem příkladu ponecháme pouze COM3 a zbytek smažeme).
- Vypněte všechna zařízení a restartujte počítač.
- Po restartu zapněte zařízení v požadovaném pořadí (přeinstalujte převaděče USB na sériové atd.). Systém detekuje automaticky všechny detekované porty COM a přidělí jim čísla sériových portů..