- ArduinoIDEのセットアップ
- ArduinoIDEプログラミング用のSTM8S103F3ボードのセットアップ
- Arduinoを使用したSTM8S103F3のLED点滅
- STM8S103F3用のArduinoピンマッピング
- ArduinoIDEでのSPLライブラリのコンパイル
Arduinoは、サポートするユーザーコミュニティのおかげで、間違いなくユーザーフレンドリーで迅速なプロトタイピングツールに成長しました。現在、そのオープンソースの性質により、プラットフォームはArduinoボードだけでなく、NodeMCU、ESP8266、STM32、MSP430などの他の開発ボードにもArduinoIDEからプログラムできます。方法を知りたい場合は、以下のリンクをたどることができます。
- ArduinoIDEを使用したNodeMCUのプログラミング
- ArduinoIDEを使用したESP8266のプログラミング
- ArduinoIDEを使用したSTM32のプログラミング
- Energeiaを使用したMSP430のプログラミング(Arduinoと同様)
間違いなく、Arduino IDEは初心者には最適ですが、それでも専門能力開発には、ネイティブ開発環境とコンパイラーを使用することをお勧めします。 PICマイクロコントローラ用のMPLABXやTIマイクロコントローラ用のCodeComposerスタジオのように。ネイティブプラットフォームを使用すると、レジスタレベル(必要に応じてアセンブリレベルでも)で作業できるため、プログラムのメモリ効率が向上します。これが、STM8Sマイクロコントローラーチュートリアルを開始した理由です。シリーズでは、プラットフォームの選択はSTVDとCosmic Cコンパイラであり、どちらも無料でダウンロードして使用できます。残念ながら、STVDは非常に古いIDEであり、使用している間は90年代のように感じます。その上、STVPプログラマツールもIDEと十分に統合されていないため、個別に使用する必要があります。これにより、コンパイルとアップロードの時間が長くなり、開発とデバッグが面倒になります。
私は代替案を探しに行きました、そしてそれはArduinoIDEが救助のために来たときです。 Michael MayorによるSduinoと呼ばれるツールを使用すると、Arduino IDEからSTM8sマイクロコントローラー(人気のあるもののほとんど)を直接簡単にプログラムでき、これをセットアップして開始するのに数分しかかかりません。さらに興味深いのは、Arduinoスタイルのプログラミングをサポートする以外に、Sduinoでは標準周辺機器ライブラリ(SPL)を使用できることです。つまり、STVDでほぼ同じプログラムをArduinoIDEにコンパイルできます。 Sduinoはクールなツールですが、まだ開発中であり、Arduinoのライブラリと関数の多くをまだサポートしていません。そうは言っても、STM8S103F開発ボードでArduinoIDEを使用する方法を学びましょう。このボードを初めて使用する場合は、STM8S103Fチュートリアルの開始を確認してください。Sduinoは、STM8S103Fの他に、STM8S003、STM8S105C、STM8S105K、STM8S、STM8S208MB、ESP14などの他のSTM8Sマイクロコントローラーもサポートしています。このチュートリアルで説明する手順はすべて同じです。
ArduinoIDEのセットアップ
ステップ1: Arduino環境にまったく慣れていない場合は、オペレーティングシステムに基づいてArduinoをダウンロードしてインストールします。
ステップ2: [ファイル]-> [設定] に従って設定ウィンドウを開き、以下のリンクを追加のボード管理URLテキストボックスに貼り付けて、[OK]をクリックします。
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
手順3: [ツール]-> [ボード]-> [ボードマネージャー]に従って、[ボードマネージャー]ダイアログボックスを開き、「sduino」を検索します。インストールをクリックし、インストールが完了したらダイアログボックスを閉じます。
ステップ4: IDEを再起動し、 [ツール]-> [ボード]-> [STM8S103F3]に従い ます。別の開発ボードがある場合は、他のボードを選択できます。
これで、ArduinoIDEはSTM8S103F3開発ボードをプログラミングする準備が整いました。ボードをセットアップしてコンピューターに接続し、単純なLED点滅をプログラムしてみましょう。
ArduinoIDEプログラミング用のSTM8S103F3ボードのセットアップ
以下に示すように、ST-LinkV2を開発ボードに接続します。
接続は非常に簡単で、最良の部分は外部コンポーネントが不要なことです。プログラミング用のハードウェア設定を以下に示します。接続にメスのヘッダーワイヤを使用しました。ただし、ST-Linkのピン配列が私のものと異なる場合があることに注意してください。接続する前に、必ずデバイスのピン配列に従ってください。
接続を確立し、デバイスをコンピューターに接続します。ドライバーのインストールが自動的に開始されます。デバイスマネージャを使用して、コンピュータがST-LINKV2を正しく検出したかどうかを確認できます。また、ボードに初めて電力を供給する場合は、ボードのテストLEDが点滅していることに気付くでしょう。
Arduinoを使用したSTM8S103F3のLED点滅
これで、単純なLEDの点滅について、サンプルセクションの点滅プログラムを使用できます。 ファイル->例-> Generic_Example->基本->点滅に 従ってください。
オンボードLEDを点滅させるための完全なプログラムを以下に示します-
void setup(){//デジタルピンLED_BUILTINを出力として初期化します。pinMode(LED_BUILTIN、OUTPUT); } //ループ関数は永遠に何度も何度も実行されますvoidloop(){digitalWrite(LED_BUILTIN、HIGH); // LEDをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のdigitalWrite(LED_BUILTIN、LOW);を待ちます //電圧をLOWにすることでLEDをオフにしますdelay(1000); // 1秒待つ}
ご覧のとおり、これはArduinoのまばたきプログラムと非常によく似ています。プログラムをアップロードするには、ボードが上記のようにst-link v2経由で接続されていることを確認し、以下に示すようにプログラマーを「ST-Link / V2」として選択します。
注:Arduinoボードとは異なり、ボードのプログラミングに適切なCOMポートを選択する必要はありません。COMポートはシリアル通信にのみ使用します。
COMポートを選択すると、コードのアップロードも非常に簡単になります。アップロードボタン(下の赤で囲まれている)を押すだけで、コードがコンパイルされ、ボードに自動的にアップロードされます。
つまり、プログラムはボードに直接アップロードされ、オンボードLEDが点滅しているはずです。外部アップロードソフトウェアも何もありません。それと同じくらい簡単です。このページの下部にあるビデオで作業を確認できます。
STM8S103F3用のArduinoピンマッピング
ここから先に進む場合は、STM8S103F3開発ボードの各ピンをアドレス指定する方法を知っている必要があります。ピンマッピングは、以下のこの画像から理解できます-
たとえば、STM8S103F3ボードの回路図から、オンボードLEDがPB5に接続されていることがわかります。Arduinoでこのピンに対処するには、3を使用する必要があるため、プログラムは次のように記述できます。
void setup(){//デジタルピンLED_BUILTINを出力として初期化します。pinMode(3、OUTPUT); } //ループ関数は永遠に何度も何度も実行されますvoidloop(){digitalWrite(3、LOW); // LEDをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のdigitalWrite(3、HIGH);を待ちます //電圧をLOWにすることでLEDをオフにしますdelay(1000); // 1秒待つ}
ArduinoIDEでのSPLライブラリのコンパイル
前述のように、ArduinoIDEでSPLライブラリを使用することもできます。覚えているかと思いますが、以前のSTM8S GPIOチュートリアルでは、プッシュボタンを使用してオンボードLEDと外部LEDを点滅させるコードを記述しました。変更がほとんどない同じコードをArduinoでコンパイルすることもできます。変更されたコードを以下に示します。
#define Green_LED GPIOA、GPIO_PIN_3 void setup(){GPIO_DeInit(GPIOA); //ポートAを動作するように準備しますGPIO_DeInit(GPIOB); //ポートBが機能するように準備します// PA2を入力プルアップピンとして宣言しますGPIO_Init(GPIOA、GPIO_PIN_2、GPIO_MODE_IN_PU_IT); // PA3をプッシュプル出力ピンとして宣言GPIO_Init(Green_LED、GPIO_MODE_OUT_PP_LOW_SLOW); // PB5をプッシュプル出力ピンとして宣言GPIO_Init(GPIOB、GPIO_PIN_5、GPIO_MODE_OUT_PP_LOW_SLOW); } void loop(){if(GPIO_ReadInputPin(GPIOA、GPIO_PIN_2))//ボタンが押された場合GPIO_WriteLow(Green_LED); // LEDオンelseGPIO_WriteHigh(Green_LED); // LEDオフGPIO_WriteReverse(GPIOB、GPIO_PIN_5);遅延(100); }
STM8Sを使用して開発をすぐに開始したい場合は、Sduinoと一緒にArduinoIDEを結論付けることは非常に良いオプションです。ただし、プラットフォームはまだ開発中であり、多くのArduinoライブラリはまだサポートされていません。それでも、深く掘り下げて開発に貢献したいのであれば、それは素晴らしいことです。ただし、学習のために、STVDとcosmicCコンパイラを使用したチュートリアルシリーズを続けます。