[HAL] STM32F7-Discovery CubeMX AC6でLチカ

STM32F7-Discovery CubeMX AC6でLチカを行う事を考えてみます。
macOS Sierra 10.12.5

1.開発IDEの準備
今回は無料で使える開発環境 System Workbench for STM32 をセットアップして利用しようと思います。

1-a.ユーザー登録を行いダウンロードとインストール
Downloading the System Workbench for STM32 installer

2. CubeMXのダウンロードとインストール
STM32CubeMX – STM32Cube initialization code generator

macOS Sierra 10.12.5でインストールしたところ
初期状態のまま、ボード選択をすると
レインボーカーソルのままになったり、重い状態で動かない現象でした。

help > Check for update から アップデートを進めます。

アップデートをすべて完了させてから、
New Projectの作成で STM32F7-Discovery (STM32F746G-DISCO) を選びます。

無事設定できる状態になりました。

3. STM32F7-Discoveryのハードウェアを調べる
32F746GDISCOVERY – Discovery kit with STM32F746NG MCU – STMicroelectronics
からユーザーマニュアルをダウンロードします。

STM32F746NG ARM Cortex-M7 STMicroelectronics

3-a.Lチカに使えそうなLEDはどこにあるのか?
STM32F7 Discovery でOpenOCD+gdbによるLチカ – ヾノ*>ㅅ<)ノシ帳 のサイトが参考になります。

ユーザーマニュアル
UM1907: Discovery kit for STM32F7 Series with STM32F746NG MCU から回路図を確認してみます。

PI1 という事が確認できる
CubeMXでピンの情報を調べるにはFindでPI1を検索すると該当するピンをハイライトさせる事が可能です。

CubeMXでのLEDの設定の仕方は以下の動画が参考になります。
0.0 Setting up Keil for Your First LED Blinking Program on STM32F7 Discovery Board

動画を参考にしながら PI1 を GPIO_OUTPUT に設定を進めてみましょう。

CubeMXの設定を行ってゆきます
a. 設定されている pin のアサインをクリアします
プログラムがわかりやすくなるように、デフォルトのピンの設定をクリアします。

b. RCC, SYS を設定します

c. PI1 を GPIO_OUTPUT に設定します

d. 各種設定をします

e. 今回はIDEにAC6を使うので書き出し設定を変更します

f. ファイルを書き出しします

g. AC6で書き出したファイルを読み込みます

h. LEDを点灯させるコードを書く
STM32CubeF7 – Embedded software for STM32F7 series から
UM1905: Description of STM32F7 HAL and Low-layer drivers ユーザーマニュアルをダウンロードします。

このドキュメントでHALのAPIの学習が出来ます。

今回は HAL_GPIO_TogglePin を使います。
main.c に以下を記載します。

i. コンパイルを行い実機にファイルを転送する
LEDの点灯、消灯が確認できます。

3-b.Lチカに使えそうなボタンはあるのか?
Pushボタンを押した時にLEDを点灯、消灯する事を考えてみましょう。

ユーザーマニュアル
UM1907: Discovery kit for STM32F7 Series with STM32F746NG MCU から回路図を確認してみます。

STM32F746NGH6 Pin Assign

CubeMXでのボタンの設定の仕方は以下の動画が参考になります。
0.1 Interrupt, LED and Push Button Programming of STM32F7 Discovery Board

ボタンの PI11 を GPIO_EXTI11 にします。

ファイルを書き出して stm32f7xx_it.c を開くと 外部割り込みの記述が確認出来ます。

ボタンを押した割り込み時に LED とトグルでON/OFFします。
(テストなのでチャタリング対応などはしてません)
stm32f7xx_it.c

ファイルをコンパイル転送を行い
青いプッシュボタンを押すと、点灯、消灯を繰り返す事が確認できます。

SystemWorkbench for STM32(SW4STM32)でprintf()デバックしてみる
SW4STM32でsemihostingが使いたい – yuqlidの日記

デバッカからprintf出来るようにセミホスティングの設定を行ってみます。

Miscellaneousの設定

Debug Configurationsの設定

ソースコード

STM32 HALの参考になるサイト
HAL Driverが使えるSTM32系開発環境を作る – 鳥の巣箱
STM32F7 Discovery でOpenOCD+gdbによるLチカ – ヾノ*>ㅅ<)ノシ帳
EclipseでSTM32CubeF7のサンプルを動かす – Qiita
Time for Electronic Engineering STM32F746 (STM32F7 Discovery) – how to turn on/off LED by button
STM32 M7 ソフトウェア開発入門 PDF

投稿者: yoshimax

Software Engineer #Unity #iOS