2014-06-19

Windows7におけるシリアルポートへのアクセス

Windows 7 にて, シリアルポートにアクセスしようとすると, CreateFile が失敗し, GetLastError が 2 を返す. ERROR_FILE_NOT_FOUND, 「指定されたファイルが見つかりません。」というエラーらしい.

このサイトによると権限が無いときにこのエラーになるらしい. プログラムを実行するときに, 右クリックし, 「管理者として実行(A)」をしたら, シリアルポートにアクセスできるようになった.

本来は, ユーザ権限で動作するプロセスにシリアルポートへのアクセスを許すような権限の変更を行うべきなのだろうが...

なお, C言語でのコードは以下の通り.

char s[] = "\\\\.\\COM1";
handle = CreateFile(s, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
バックスラッシュがたくさんあるが, C言語におけるエスケープが行われた後, \\.\COM1になる.


  • iBuffalo BSUSRC0610BS は, FTDI のチップが入っていて, 好評らしい.
  • エムサーブ HL-340 は, 変換名人のものと色が似ているが, 好評.
  • 一方で変換名人の USB-RS232 は悪評. PID/VID は PL2303 だが載っているチップは別物との情報も!

0 件のコメント:

コメントを投稿