mbed Nucleo STM32F401始め


このエントリーをはてなブックマークに追加

mbedでHello World

今更ながらmbedを扱ってみることに、ひとまずHello Worldをやってみる
格安boardであるmbed Nucleoがあったのでそれで練習

下記ページを参考にした
mbedではじめよう

PCの環境はMac OSX 10.9です

必要なもの
・mbed(なんでもいいですが今回はNucleoを使ってみた)
・PC(なんでもいいですが今回はMacを使ってみた)
USB Aオス-miniBオス(amazonでもパーツショップでもそのへんの電気屋サンでもなんでもいいので手に入れておく)

まずはつないでみてみる

STM32F401 Nucleoを箱から取り出してみると、ボードしかありません
パソコンとの接続にはUSBのminiBが必要となります

で、つないでみるとディスクとしてマウントされます

ディスクの中にmbed.htmというファイルがあるはずなので
ブラウザで開きます(たぶんブラウザにファイルをドラッグ&ドロップしてやればOKです)

そしたら、右側に Open mbed Compiler ってのがあるはずなのでクリックすると

IDE(統合開発環境)が開きます

プログラムを書き込んでみる

んで、まずはhello_worldをシリアルコンソールに出すサンプルプログラムをインポートしてあげれば動くのが確認できます

mbedのメニューバーから「インポート」をクリックして
「プログラム」タブにした状態で「Nucleo_hello_world」とやってやればサンプルプログラムが出てくるので

ダブルクリックしてやれば、プログラムがインポートされます
あとは、メニューバーの「コンパイル」をクリックしてやれば、コンパイルがうまくいけば
ファームウェアがダウンロード出来るので
デスクトップなどに一旦保存してあげます
で、その後ドラッグ&ドロップでNucleoディスクにプログラムを書き込んであげます
(直接Nucleoディスクにダウンロードするとなぜか動きませんでした)

後は、Macの場合はターミナルでscreenコマンドを打てばいいので

1
$ screen /dev/tty.usbmodem1423 9600

のように打ってあげると、5秒に一回 hello world と表示されるはずです

(/dev/tty.usbmodem1423 の部分は、tty. 以降が環境によって異なると思われますので)

1
$ ls /dev/tty.usb*

と打ち込んで出てきたやつを使用してください

macでUSBの穴(ソケット)を1つしか使ってない状態ではおそらく1つしか出てこないので

これでmbedの簡単な使い方が出来たので後はプログラムを書いていったり、他の人のソースをインポートしたりすれば
マイコンの練習が出来ます!

ちなみに、screenコマンドだと改行の位置がどんどんずれていってると思いますが
これはscreen側の改行コードが CR+LF の設定になってるため(たぶん)なので

Nucleo_hello_worldのプログラムだと2箇所、14行目と17行目の \n となってるところを \n\r としてやればよいです

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "mbed.h"
//------------------------------------
// Hyperterminal configuration
// 9600 bauds, 8-bit data, no parity
//------------------------------------
Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut myled(LED1);
int main() {
int i = 1;
pc.printf("Hello World !\n\r"); /*ここの行*/
while(1) {
wait(1);
pc.printf("This program runs since %d seconds.\n\r", i++); /*ここの行*/
myled = !myled;
}
}

このエントリーをはてなブックマークに追加