シュウジマブログ

Apple製品,技術系の話をするブログ

【Nucleo入門】Nucleo-F401でLチカ(STM32CubeIDE macOS版環境構築)

環境と注意事項

  • Nucleo-F401RE
  • STM32CubeIDE v1.0.0
  • macOS Mojave v10.14.4

ダウンロード手順

こちらのページからダウンロードできます.

www.st.com

「ソフトウェアを入手」をクリックすることで画面下に遷移します.

f:id:masa_flyu:20190430004518j:plain

自身の環境に合わせた製品の「ソフトウェア入手」をクリックします(私はMacなので,真ん中のもの).

f:id:masa_flyu:20190430004609j:plain

ライセンス契約に同意(ACCEPT)します.

f:id:masa_flyu:20190430004721j:plain

名,性,E-mailを入力し,「I have read and understood...」にチェックを入れたあと,「ダウンロード」をクリックします.

f:id:masa_flyu:20190430004919j:plain

メールが届きますので,「Download now」をクリックします.

f:id:masa_flyu:20190430005042j:plain

およそ1GB近いサイズのファイルがダウンロードされます.

このファイルを開くと以下のウィンドウが表示されます.

  • ST Link Server
  • STM32CubeIDE

なるものが入っているようです.

f:id:masa_flyu:20190430005242j:plain

ST Link Serverに関してはからインストールすべきらしいですし,一応インストール操作はしましたが,効果がよく分かりませんでした.

これは私が実際に行った操作ですが,必要性は分かりません.

一応載せておきます.

f:id:masa_flyu:20190430183520j:plain

f:id:masa_flyu:20190430183536j:plain

なにやら怪しい警告が出てきました.とりあえず「このままインストール」を選択しました.

今の所異常は起きてないので大丈夫かと思います..

f:id:masa_flyu:20190430183558j:plain

完了です.

f:id:masa_flyu:20190430183611j:plain

このあと,「ゴミ箱に移動しますか?」というダイアログが出てきたら「いいえ」を選択します.

STM32CubeIDEのインストール

次に本体となる,「STM32CubeIDE」をインストールします.

f:id:masa_flyu:20190430184039j:plain

デスクトップに「STM32CubeIDE」というディスクがセットされていれば,以下のインストーラを起動できます.

ない場合は,ダウンロードしたファイルから再度起動してください.

次に「STM32CubeIDE」をApplications(アプリケーション)フォルダにドラッグしてインストールします.

f:id:masa_flyu:20190430005242j:plain

STM32 CubeIDEの起動

アプリケーションフォルダにいき,右クリックしたあとOption(Alt)キーを押しながらクリックします.

(未確認の開発者のソフトウェアを受け入れるための方法です)

f:id:masa_flyu:20190430185713j:plain

「未確認の開発者...」などのダイアログが出たら「開く」をクリックします.

f:id:masa_flyu:20190430190040j:plain

STM32 CubeIDEでプロジェクトの新規作成

こちらの「Information Center」が開いたら「Start new STM32 project」を選択します.

(この操作はメニューバー→「File」→「New」→「STM32 project」と同じものです)

f:id:masa_flyu:20190430191227j:plain

ターゲットの選択画面が出ますので,最初に「Board Selector」タブを選択します.

次に画面左上の検索ボックスに,「NUCLEO-F401RE」と入力しリターンキーを押します.

すると右に当該のボードが表示されますので,ダブルクリックすることで,選択することができます.

f:id:masa_flyu:20190430192034j:plain

プロジェクトの名前を適当に設定し,「Finish」をクリックします.

f:id:masa_flyu:20190430221940j:plain

すると,関連ファイルのダウンロードが始まります.

(私はここで一度フリーズしてしまったため,最初からやり直しました.)

f:id:masa_flyu:20190430222311j:plain

ここまできて,マイコンのハードウェア的な設定を行えるグラフィカルな画面が出現しました.

この画面で,各周辺機能(ペリフェラル)のピンへの割り当てを行えます.

f:id:masa_flyu:20190430222718j:plain

STM32 CubeIDEでLチカプログラム

左の一覧から「Src」フォルダ内の「main.c」を開きます.

名前の通り,こちらのファイルにメインのプログラムを記述していきます.

デフォルトのmain.cの中身について

「main.c」にはすでに250行ほどのプログラムが記述されています.

これは,グラフィカルな画面(.iocファイル)で設定したピンの設定などの情報を自動で記述したものであり,いわゆるマイコンの「初期設定」のようなものを行う必要がありません.

自分のプログラムを記述した後でも,iocファイルを修正することでmain.cに変更が自動反映されます.

1点注意点として自動反映の際に自分で書いたプログラムが消える恐れがあることが挙げられます.

それを避けるために,自分で書くプログラムはコメント「USER CODE BEGIN」から「USER CODE END」の間に書くようにしてください.

また,このコメントを削除してはいけません.

Lチカプログラム

main.cの一部を抜き出しました.編集すべきはわずか2行だけです.

「USER CODE BEGIN 3」の下に以下の2行を追記してください.

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */
  

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    //ここに以下2行を追加
    HAL_GPIO_TogglePin( GPIOA, GPIO_PIN_5 );
    HAL_Delay( 500 );
  }
  /* USER CODE END 3 */
}

以上で記述は完了です.

Lチカの実行

Nucleoをコンピュータにに挿入して,認識されていることを確認します.

(認識されていれば,デスクトップに以下のディスクが接続されているはずです) f:id:masa_flyu:20190430233504j:plain

STM32 CubeIDEの虫マークf:id:masa_flyu:20190430232935j:plainをクリックすることで,書き込みに入ります.

下のConsole画面に「Download verified successfully」が出てきたら書き込み完了です.

リセットボタンを押し,NUCLEO中央付近にある緑色LED(LD2)が点滅したら成功です.

実行できない場合

ST Linkファームウェアが古いとき

「ST Linkのバージョンが古いです」のような表示が出た場合にはNUCLEOの書き込み機部分のファームウェアを更新する必要があります.

www.st.com

f:id:masa_flyu:20190430234420j:plain

当ブログをご利用いただく際には免責事項をお読みください。