mbedで秋月LPC11U35ボード
850円
https://gyazo.com/d6128b14d75c420c4b73a265d6ddbe8a
おすすめポイント
mbedオンラインコンパイラが使える
USBストレージとして .bin を書き込める
Nucleoの半額くらい
mbedで使うコツ
Mbed Stduioではmbed5 baremetalを利用する
mbed6は非対応らしくエラーになる。
code:txt
argument -m/--mcu: LPC11U35_401 is not a supported MCU. Supported MCUs are:
(略)
KL46Z, KW41Z, LPC1114,
LPC1768, LPC54114, LPC546XX,
(略)
オンラインコンパイラではmbed2を利用する
mbed5は非対応なのでエラーになる。
https://gyazo.com/066000d2ec58258d2434b673d6334a91
ピン名
2通りある。
code:pin_name.cpp
DigitalOut out1(p3); // ボードのピン名。
DigitalOut out2(P0_7); // マイコンのピン名。
上の例は、秋月の添付カードだとここ。
https://gyazo.com/a4b30b34aa21abd8f85b540d5f2d99a4
関連資料
GPIO
table:pin
入力 出力 注意点
p1 × × 電源
p2 × × 電源
p3 ○ ○ 基板上のLED3と共用
p4 ○ ○
p5 ○ ○
p6 ○ ○
p7 ○ ○
p8 ○ ○
p9 ○ ○
p10 ○ ○
p11 ○ ○
p12 ○ ○
p13 ○ ○
p14 ○ ○
p15 ○ ○
p16 ○ ○
p17 ○ ○
p18 ○ ○
p19 ○ ○ 基板上のSW1と共用
p20 ○ ○
p21 △ △ プルアップされている(*1)
p22 ○ ○
p23 ○ ○
p24 △ △ USB接続中は5V固定
p25 ○ ○ 基板上でプルアップ
p26 ○ ○ 基板上でプルアップ
p27 ○ ○
p28 ○ ○ 基板上のLED1と共用
p29 × × 電源
p30 × × 電源
(*1)以下のケースで、p21の入出力をハイにしてはならない。p21は基板上のリセットICの出力と繋がっており、その出力は普段はオープンだが、以下のケースでローになる。ローとハイが繋がって短絡回路になる。
SW2がONのとき
VDDが2.93V以下のとき
短絡を回避するには、SW2を使わず、電源の抜き差しでリセットする。
基板上のLED
LED3
正論理。
最も使いやすい。
https://gyazo.com/610073c55b638570d4b748459895c352
code:led3.cpp
DigitalOut led(p3); // p3 の代わりに LED1~LED4 のいずれかでもよい
led = 1; // 点灯
led = 0; // 消灯
LED1
負論理。
USB通信と共用のため、プログラム内でUSB通信する場合は利用不可。
https://gyazo.com/8f586b17130261053a319682d24ea4fa
code:led1.cpp
DigitalOut led(p28); // p28 の代わりに LED1 とは書けない
led = 0; // 点灯
led = 1; // 消灯
LED2
負論理。
リセットICによる短絡に注意!
https://gyazo.com/ab0870c4b2a7c6ad2002c5af74be26c9
code:led2.cpp
DigitalOut led(p21); // p21 の代わりに LED2 とは書けない
led = 0; // 点灯
led = 1; // 消灯 (短絡に注意!)
基板上のスイッチ
SW1
DigitalIn として使える。
プルアップが必要。
https://gyazo.com/610073c55b638570d4b748459895c352
code:button.cpp
DigitalIn button(p19);
int main() {
button.mode(PullUp);
while(true) {
if(button == 0) {
// ボタンが押されている
}
}
}
SW2
利用不可。
GPIOに直接繋がっておらず、基板上のリセットICに繋がっている。
https://gyazo.com/ab0870c4b2a7c6ad2002c5af74be26c9
マクロ
code:macro.cpp
#if defined(TARGET_LPC11U35_401) // LPC11U35専用の処理