質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

1回答

2031閲覧

C#のwindowsのformからドライバー接続をしたいのですが...

tsutaya_0624

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

1クリップ

投稿2019/07/12 06:38

編集2019/07/12 08:11

C#のwindowsのformからドライバー接続をしたいのですが...

モータ電流のセンシングを行うために
ドライバとPCで通信を行い、モータのサーボをONなどの初期セッティングをしようとしています。
https://qiita.com/mag2/items/d15bc3c9d66ce0c8f6b1
を参照て試しているところです。

発生している問題・エラーメッセージ

$exception {"ポート 'COM3' へのアクセスが拒否されました。"} System.UnauthorizedAccessException

該当のソースコード

C#

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace SerialTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { serialPort1.BaudRate = 38400; serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Handshake = Handshake.None; serialPort1.PortName = portComboBox.Text; serialPort1.Open(); } private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); foreach (string port in ports) { portComboBox.Items.Add(port); } if (portComboBox.Items.Count > 0) portComboBox.SelectedIndex = 0; } private void button2_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Write(textBox2.Text + "\n"); } } delegate void SetTextCallback(string text); private void Response(string text) { if (textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(Response); BeginInvoke(d, new object[] { text }); } else { textBox1.AppendText(text + "\n"); } } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { string str = serialPort1.ReadLine(); Response(str); } private void button3_Click(object sender, EventArgs e) { serialPort1.Close(); } } } namespace SerialTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { serialPort1.BaudRate = 38400; serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Handshake = Handshake.None; serialPort1.PortName = portComboBox.Text; serialPort1.Open(); } private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); foreach (string port in ports) { portComboBox.Items.Add(port); } if (portComboBox.Items.Count > 0) portComboBox.SelectedIndex = 0; } private void button2_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Write(textBox2.Text + "\n"); } } delegate void SetTextCallback(string text); private void Response(string text) { if (textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(Response); BeginInvoke(d, new object[] { text }); } else { textBox1.AppendText(text + "\n"); } } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { string str = serialPort1.ReadLine(); Response(str); } private void button3_Click(object sender, EventArgs e) { serialPort1.Close(); } } }

試したこと

boadrateの変更は行いました

補足情報(FW/ツールのバージョンなど)

Visual Stadio 2019
FW 4.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsutaya_0624

2019/07/12 07:03

ありがとうございます。
y_waiwai

2019/07/12 07:59

このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
tsutaya_0624

2019/07/12 08:12

このような書式で大丈夫でしょうか?
m.ts10806

2019/07/12 08:15

同じコードが2回出てきてませんか?
PineMatsu

2019/07/12 08:29

一部分ではなく「該当のソースコード」全体を```で囲ってください。
guest

回答1

0

提示のエラーは、該当のCOMポートが既に他所で使用されているためにオープンできないということです。
ArduinoIDEなどでCOM3を使用していないでしょうか。
その場合は、IDEを終了させましょう

投稿2019/07/12 08:01

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsutaya_0624

2019/07/12 08:12

ありがとうございます。 一応通信の設定ができました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問