
インターフェース2012年6月号付属FM3マイコン基板を使いPCとのUSB通信を試みております。
インターフェース6,7月号との基盤特集ページ(http://www.kumikomi.net/interface/contents/fm3.php)を参考に、マイコンにUSB通信プログラム(仮想シリアルデバイス、PCから送信された文字をエコーバックするプログラム)を書き込み、特集ページの64ビットデバイスドライバをPC(win7、64bit)にインストール、Tera Termで接続しました。ここでTera Termではエラー無く接続でき送信した文字列はエコーバックされて画面上に表示されました。
次にTera TermではなくPC側のプログラムを自作したいと考え、色々なHPを参考に下記の様なコードをVisual C# 2010 Expressで書きました。(また構成マネージャを編集し64ビットに対応(したつもりです)しました)
これで実行すると、「システムに接続されたデバイスが機能していません」というエラーが出てしまい、どうにも先に進めなくなってしまいました。
原因をご存知のかたや解決のアイデアのあるかたアドバイスをいただければ幸いです。
どうぞよろしくお願いいたします。
////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace SerialTest01
{
class Program
{
static SerialPort port = new SerialPort();
static void Main(string[] args)
{
//if (IntPtr.Size == 4)
//{
// Console.WriteLine("32ビット");
//}
//else if (IntPtr.Size == 8)
//{
// Console.WriteLine("64ビット");
//}
SerialInitialization();
Console.ReadLine();
port.Close();
port.Dispose();
}
static void SerialInitialization()
{
try
{
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
Console.Write(ports[0] + "に接続します。\n\n");
port.PortName = ports[0];
port.BaudRate = 9600;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Parity = Parity.None;
port.Handshake = Handshake.None;
port.ReadTimeout = 30000;
port.WriteTimeout = 30000;
port.DtrEnable = true;
port.RtsEnable = true;
if (port.IsOpen) Console.Write("ERROR: " + ports[0] + "は既に開いています。");
else port.Open();
}
catch (Exception ex)
{
Console.Write("ERROR:\n" + ex);
}
}
}
}
////////////////////////////////////////////////////////////////
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>実機で試して頂いてありがとうございます。
実機と行っても、別のマイコンですから……
ドライバ部分の問題はわからないままです。
TeraTermで動作しているのに.NET Framework(C#)だと動かない。
というのはおかしいと思われます。
ドライバが影響しそうではなさそうですし……。
# というワケで、こちらでは判らないままです。 該当の書籍は…買う予定もありませんし…。
# ダメ元で発行元に確認くらいでしょうか。
No.3
- 回答日時:
>私のC#の使い方に問題があると思うのですが・・・
見る限り、きわめて普通の使い方…かと思います。
まぁ私なら…
>static SerialPort port = new SerialPort();
のnew以降はコンストラクタとか、初期化処理の中(このソースだと…SerialInitialization()の中でしょうか)でやると思いますが…。
ちなみに、XPとarduinoで掲示されたコードでは普通に動作しています。
デバイスドライバ側の問題…でしょうかねぇ……。
>if (port.IsOpen) Console.Write("ERROR: " + ports[0] + "は既に開いています。");
IsOpenの仕様的にこちらには流れないものと思われます。
他のアプリでオープンしていた場合はIsOpenでは判定できないみたいです。
# 例外が飛ぶのでcatchの方に行くでしょう。
No.2
- 回答日時:
>(また構成マネージャを編集し64ビットに対応(したつもりです)しました)
関係ないかも知れませんが……32Bit(x86)にした場合はどうなんでしょうか?
TeraTermでは通信できているようですので、C#からのCOMポートの扱いに問題がある……んでしょうかね。
この回答への補足
私のC#の使い方に問題があると思うのですが・・・
特にドライバまわりがよくわかりません。
構成マネージャで32bitにした場合、64bitの時と同じ「システムに接続されたデバイスが機能していません」というエラーが出ます。
マイコンのプログラムをエコーバックありのものと無しのもので試したところ、TeraTermでちゃんとエコーバックなしの場合は画面上に文字が表示されないことも確認しました。(エコーバックありの時はちゃんと表示されます)
接続されてないポート(例えば"COM3")を指定すると「ポート'COM3'は存在しません。」というエラーがかえってきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース Flaskでサーバー立ち上げに関して 1 2023/08/12 21:02
- モニター・ディスプレイ display portの仕様と使い方について教えてください。 1 2023/06/12 08:13
- セキュリティホール・脆弱性 Windows PC 背面のDISPPORT 3 2022/06/04 13:52
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Android PCのDISPLAY PORTとは? 4 2022/06/04 13:26
- ルーター・ネットワーク機器 L3スイッチからメディアコンバータを経由してPCへ接続出来ません。 3 2022/07/03 22:15
- モニター・ディスプレイ 写真のようにGoogle TVをdisplay port に変換してモニターに接続したのですが、映り 2 2022/12/16 12:55
- その他(コンピューター・テクノロジー) WO mic のUSB接続でエラーが出ます。 1 2022/07/09 09:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB2010 Dataset内のDB接続先変更
-
ASP.NETのパフォーマンスと接続...
-
ctfmon.exe。スタック ベースの...
-
TeraTermマクロの”Link...
-
jdk17.06のインストーラーが起...
-
Windowsが起動しなくなってしま...
-
.netでスタートページでエラー...
-
web.configとは?(初心者です)
-
ASP AccessDBオープン出来ない
-
Windows10でwindows8やwindows7...
-
IIS7.5 Excel ファイルオープ...
-
「予期しないエラーが発生しま...
-
信長の野望 革新について
-
Kirium Mail Sever のインスト...
-
コマンドボタンのキャプション...
-
実行プログラム名の取得
-
ASP.netのweb.configについて
-
Ubuntuで自動関連付けをするには?
-
管理者権限のないユーザーだと...
-
コマンドプロンプトのERRORLEVE...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c#のTLS1.2での通信について
-
ConnectNamedPipeの接続待ち
-
FFFTPでファイル一覧を取得でき...
-
データベース接続/切断の基本的...
-
System.Net.Sockets.SocketExce...
-
VB2010 Dataset内のDB接続先変更
-
OracleInProcServer.XOraSessio...
-
Android端末から外部DB(MYSQL...
-
SFTPについて
-
VisualStudioでのプログラミン...
-
VB6.0のコードによるMySQLへの接続
-
VB.NETで、ORACLE 8に接続する...
-
ページ毎にMySQL
-
AccessのDBをExcelのListboxに...
-
ローカル側のC#から、リモート...
-
DataAdapterだけじゃダメ?
-
MYSQL接続 Imports エラー
-
非接続型なのでしょうか?
-
javascriptでSQLite接続
-
C#でのデータベースプログラミング
おすすめ情報