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

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

新規登録して質問してみよう
ただいま回答率
85.31%
コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

0回答

225閲覧

Poke-controller Arduino Leonaldoに書き込む際に、コンパイルエラーが発生する

LaKS_917

総合スコア0

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2024/09/13 16:40

実現したいこと

正常にマイコンに対する書き込みを成功させたい

発生している問題・分からないこと

https://pokecontroller.info/SetLeonardo

上記HPを参考にしていて、6-6まで完了しています。6-7での「書き込み」の際にコンパイルエラーが発生しました。
使用しているソフト等は上記ページのままです。

エラーメッセージ

error

1文字数制限を大幅オーバーしてしまったので補足欄にスクショで貼っておきます。

該当のソースコード

Arduino

1//日本語キーボード 2//https://qiita.com/nak435/items/bbe04300c67c37febb7e 3#define HID_CUSTOM_LAYOUT 4#define LAYOUT_JAPANESE 5#include "HID-Project.h" 6 7#include "Poke-ControllerForLeonardo_Func.h" 8#include "UseKeyboardForNintendoSwitch_Func.h" 9#include <SoftwareSerial.h> 10#include "switch_controller_plus.h" 11#include "auto_command_util_plus.h" 12 13typedef enum 14{ 15 STATE0,//シリアル通信受信→受信成功 16 STATE1,//シリアル通信成功時 17 STATE2,//判定 18} LOOPSTATE; 19 20LOOPSTATE LOOP_STATE; 21 22static String str = ""; 23static String str_buff = ""; 24static char chrread[MAX_BUFFER]; 25static int ProgState = 0; 26 27void setup() { 28 Serial1_Init();//RX←0でのシリアル通信 29 Controller_Init();//コントローラーの準備 30 Keyboard_Init();//キーボードの初期化 31} 32 33void loop() { 34 //状態に応じて切り替える 35 switch (ProgState) 36 { 37 case STATE1: 38 SwitchFunction(); 39 break; 40 default: 41 /* バグ回避を兼ねて状態の初期化を行う */ 42 ProgState = STATE0; 43 break; 44 } 45} 46 47//データが利用可能な時に呼び出される関数(Serial1) 48void serialEvent1() 49{ 50 // one character comes at a time 51 char c = Serial1.read(); 52 53 if (c == '\n') 54 { 55 pc_report_str[idx++] = c; 56 pc_report_str[idx++] = '\0'; 57 ParseLine(pc_report_str); 58 idx = 0; 59 memset(pc_report_str, 0, sizeof(pc_report_str)); 60 ProgState = STATE1; 61 } 62 else if (idx < MAX_BUFFER) 63 { 64 pc_report_str[idx++] = c; 65 } 66}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Googleで検索しましたが同じようなエラーが出たパターンが発見できずでした。

補足

イメージ説明

イメージ説明

イメージ説明

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

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

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

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

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

thkana

2024/09/14 03:38

> 上記HPを参考にしていて、6-6まで完了しています 参考にしただけで、その通りにやっていないという疑いが濃厚とおもいます。 私の環境下でトレースしてみて動作はともかくコンパイルは完了するので。参照先もライブラリのバージョンにも注意を促すなど気遣いは細やかなほうと思います。 ちなみに、「ほら全部出したからお前直せ」というのであればそれは「丸投げ」と称しまして推奨される行為ではありません。ここは「ITエンジニア特化型」のQ&Aサイトらしいので、今はエンジニアでないにしてもエンジニアであろうとする姿勢ぐらいは見せていただきたいものと思います。 「スクショを撮った」で満足してしまっているようですが、そのスクリーンショットがそもそも情報を全部は表示していないというのに気付かないあたり、内容には全く注意を払っていないことがわかってしまいます。
LaKS_917

2024/09/14 04:57

ありがとうございます。今回初めてプログラミングに触れることになったのでどこかで間違っている可能性があることは失念していました。 あと、丸投げをしたつもりはありませんがそう捉えられてしまい、不快にさせてしまったのなら申し訳ないと思います。
thkana

2024/09/14 06:26

丸投げとは?の話に深入りしても解決にはなんの寄与もしないので棚上げするとして。 ところどころに出現する"Poke-ControllerForLeonardo.zip.510"の文字列から推測するなら... 参照先サイトの[6-2. ダウンロードしたZipファイルを右クリックし、「すべて展開」をします] の作業の意味がわからず、以降の[6-3. Readmeに基本的な使用方法が書いてますので、目を通しておきましょう]以降の作業をzipアーカイブ中のファイルに対して行っているようなことはありませんか? (あるいは、この文の意味がわからなかったりしますか?) (私の環境ではArduino IDEはVer.2に移行してしまっているので、zip中の.inoファイルを開いた場合IDEの1.8.xでどういう挙動になるか確認できません)
LaKS_917

2024/09/14 06:42

ありがとうございます。僕の理解としては、当該zipファイルの「すべて展開」ボタンをクリックして、中のファイルを展開する。だと思っていました。 今確認のため同じファイルの「すべて展開」をしてみたところ、「宛先には同じ名前のファイルが99個存在します」といメッセージが表示されている状態です。
thkana

2024/09/14 07:14

(「すべて展開」の操作をしたことには疑義はありません) では、そのあとの6-3/6-4の項目ではどこにあるファイルを操作していますか?
LaKS_917

2024/09/14 07:20

6-3、6-4ともにダウンロードした「poke-controller for leonaldo」から操作してます。
thkana

2024/09/14 07:34

「展開した」ではなく「ダウンロードした」ですか? 聞き方を変えましょう。 readme(.txt)あるいはPoke-ControllerForLeonardo(.ino)をエクスプローラ上で右クリックして出てくるメニューで[プロパティ]を選んだとき、出てくるダイアログで[場所]の項目はなんと表示されていますか。
LaKS_917

2024/09/14 08:04

Poke-ControllerForLeonaldo(.ino)は「Poke-ControllerForLeonardo/Arduino/Poke-ControllerForLeonardo/」 redmr(.txt)は「Poke-ControllerForLeonardo/」 です。
thkana

2024/09/14 08:35

今回はzipファイルをダウンロードしましたが、zipというのはいわば「ファイル群を箱詰め梱包したパッケージ」で、(一般には)ファイルのやりとりのために使い、そこに入っているファイルを直接操作することはしません。Windowsの「お節介」でzipのまま中身が見えたり多少いじれたりはしますが... なので、普通は(というか原則として)中身のファイルに用があるときは[展開]して使用します([展開]は、かつては[解凍]という呼び方が主流だったこともあります。英語だとunzipとかunarchiveと言ったりもします)。 今回であれば、6.2で[すべて展開...]すると、Poke-ControllerForLeonardo.zipと同じディレクトリ(フォルダ)階層にPoke-ControllerForLeonardoというディレクトリ(フォルダ)が生成されて、その中に中身のファイルがあるはずです(Windowsのデフォルト設定では展開完了時にこのフォルダがエクスプローラで開かれます)。 混乱があるのなら、Poke-ControllerForLeonaldo(.zip)ファイルはこの段階で消してしまっても構いません。6.3以降で使用するのは、ここで[展開]された方のファイルです。これらの[プロパティ]の[場所]を見ると、[C:\(以下環境により異なる)]となっているはずです。 [6.4]ではこのPoke-ControllerForLeonaldo(.ino)をArduino IDEで開いて6.7の作業を行ってみてください。 もしそれで解決したならば、今回のトラブルはzipの中身から直接ビルドを行おうとしたため、という結論になるかと思います。 この辺の話は決して「プログラミング」ではなくて、PCの使い方の(ちょっと踏み込んでいるかも知れませんが)一般論だとも思うのですが...(なので参照先ページでも特別な注意はされていなかった)
LaKS_917

2024/09/14 08:53

なるほどです。展開すると別のフォルダができることを知らず、そのフォルダがそのまま展開されたフォルダになると勘違いしていました。 教えていただきありがとうございます。
LaKS_917

2024/09/14 09:52

ありがとうございました。一旦現在出ていたエラーは解消しました。
thkana

2024/09/14 11:13

一旦...というのは? 質問した事項が解決したのなら、(私が回答書くのも面倒なので)やったことをまとめて回答書いて[自己解決]にでもしておいてください。 プログラムの動作がおかしいなど、この質問とは別の問題が出てきたのならそれは別の質問として建てるべきと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問