インターフェース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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DB接続エラー
-
ODBCによるSQL serverへの接続...
-
システム作成においておススメ...
-
.NET FrameworkとODP.NET
-
Android端末から外部DB(MYSQL...
-
Tomcat FireBird(データベー...
-
ctfmon.exe。スタック ベースの...
-
信長の野望 革新について
-
powershellの初心者です(form...
-
有効なwin32アプリケーションで...
-
MacBookAir起動時にRubyソース...
-
タスクバーのボタンがオレンジ...
-
Webの閲覧権限について
-
IISからログインしたWebサイ...
-
ASP.NETからエクセルを呼び出せ...
-
ユーザーアカウント制御について
-
windows vistaで、最近 KACT2
-
Internet Explorer が開かない。
-
Windows10でwindows8やwindows7...
-
「cronから1分毎に起動→処理」 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VisualStudioでのプログラミン...
-
System.Net.Sockets.SocketExce...
-
OracleInProcServer.XOraSessio...
-
データベース接続/切断の基本的...
-
c#のTLS1.2での通信について
-
javascriptでSQLite接続
-
ConnectNamedPipeの接続待ち
-
ASP.NETのパフォーマンスと接続...
-
●Excel VBAからSQLServerのデー...
-
Cでデータベース操作
-
VB.NET ORA-12170
-
FFFTPでファイル一覧を取得でき...
-
VB6.0のコードによるMySQLへの接続
-
Android端末から外部DB(MYSQL...
-
【Win7・64・C#】マイコンUSB通...
-
VB2010 Dataset内のDB接続先変更
-
MYSQL接続 Imports エラー
-
Androidで無線LAN強度を取得す...
-
ローカル側のC#から、リモート...
-
MySQLへのネットワーク接続
おすすめ情報