2016年10月23日日曜日

[STM32マイコン]STM32のオフライン開発環境の導入1 (SW4STM32のインストール)

前回紹介したマイコンのF401REですが、そのオフライン開発環境として STM32CubeMX + SW4STM32(IDE) をインストールしたいと思います。今回はSW4STM32のインストールを行います。

まず、今回の開発環境を整えるために、下記のサイトを参考にしています。
http://birdhouse.hateblo.jp/entry/2016/07/28/151525


SW4STM32インストール
 まずOpenSTM32のホームページに行き、"register"をクリックし、ユーザー登録をする。


ユーザー登録では住所・電話番号が求められる。しかし、でたらめなものでも登録可能(なぜ住所などまで必要とされるのか分からなかったのでそのようにした)のようだ。その後、メールが送られてきます。(Gmailでは迷惑メールに分類されていました)その中のリンクからOpenSTM32のホームページに戻ると登録が完了します。その後ページ内の"download area"をクリックします。もしLoginを求められたらLoginします。


ダウンロードページから自分の環境に合わせたソフトを選択しダウンロードします。
※以下Windowsでの説明となります
インストーラーを起動します。
JDKがインストールされていない場合は、Oracleのサイト からインストールし、再度SW4STM32のインストーラーを起動します。
Nextで進み、ライセンスを受け入れるなどすればインストールできます。

起動はショートカットまたは"/インストールしたパス/SystemWorkbench/eclipse.exe"です。

次>>



2016年10月22日土曜日

[電子工作]mbed(STM32F401RE)を試す

以前買ったF401REを使ってLEDの点滅とシリアル通信をしてみました。

○準備
 必要なもの
  ・PC
  ・ブラウザ
  ・F401RE(mbed)
  ・USBケーブル(TypeA---MiniB)
 F401REをPCに繋ぐともともと入っているプログラムによりLEDが点滅します。また、PCからはF401REがUSBメモリに見えます。中に入っている"MBED.HTM"をブラウザで開くと、mbedアカウントのLoginページに行けます。まだアカウントを持っていなければ"Sginup"、"No, I haven't created account before."の順に進めばアカウントの作成ページにいけます。アカウントを作成すると、ページの右に"Open mbed conpiler"のボタンがあり、それを押すとmbedのオンラインIDEが使えます。

○LEDの点滅
 オンラインIDEを最初に開くと、プログラムの名前などを決めるのウィンドウのようなものが出てきますが、名前を分かりやすいものにし、"OK"を押しました。その後、そこに書かれているソースを下記のように書き換えるとLEDが点滅します。
#include "mbed.h"
DigitalOut myled(LED1);
int main() {
    while(1) {
        //------------ON
        myled=1;
        wait(1);
        //------------OFF
        myled=0;
        wait(1);
    }
}
これをオンラインIDEでコンパイルすると、バイナリファイルがダウンロードされ、これをUSBメモリとして認識されているF401REに切り取り+コピーし、F401REの電源を入れなおせば、F401REでプログラムが動きます。

○シリアル通信
 上記のソースを下記のように変えると、LEDのOn/Offの情報をシリアル通信でPCに伝えられるようになります。
#include "mbed.h"
Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut myled(LED1);
int main() {  
    while(1) {
        //------------ON
        myled=1;
        pc.printf("ON \r");
        wait(1);
        //------------OFF
        myled=0;
        pc.printf("OFF \r");
        wait(1);
    }
}
シリアル通信はWindowsならTeraTerm、Debian系Linuxならsetserialとcuにより出来ます。
LED点滅とシリアル通信