STM32 Nucleo BoardでLED点滅

STM32F103で遊んでみる-LED点滅

概要

STM32 Nucleo Boardには、はじめから内蔵のLEDを点滅させるサンプルプログラムが入っています。このボードには、ユーザーが利用できるLEDとプッシュボタンがついていますので、この最初から入っているサンプルプログラムを少しだけ改造して、ユーザープッシュボタンを押したときだけLEDの点滅が速くなるプログラムに変更してみました。

前提知識

STM32F103RB, Nucleo, Keil Studioなどの開発環境の整備には以下の記事を参考にしてください。

回路

 今回の実験はNucleo STM32 Boardに標準でついているものだけを使うので、回路や配線などの準備は不要です。Keil Studioが使えるパソコンとNucleo STM32 BoardをUSBケーブルで接続しているだけでOKです。

サンプルソース

 最初から基盤に入っていたソースをいじるだけなのでターゲットOSは「mbed OS 5」だと思います。mbed OS 5では、ユーザーが利用できる青いプッシュボタンはPC_13ピンを「USER_BUTTON」という定義#defineでしています。ちなみにmbed OS 6では、このPC_13に定義されている名前が「BUTTON1」に変更されていますので、コンパイルエラーが出る場合などはOSの番号を確認してみてください。

メモ:ユーザーボタン

 17行目:変数btn1にユーザーボタンを定義します。
 21行目:この変数は、ボタンが押されている間は「0」になり、ボタンがはなされると「1」になりますので、if文でこれを判断して、ループの待機時間を変化させます。

メモ:LED1

16行目:変数led1にユーザーが利用できるLED1を定義します。
20行目:変数led1を「0なら1に」と「1なら0に」反転させ点灯と消灯をさせる部分です。

タイトルとURLをコピーしました