STM32 VS code extensionを使ってみよう

__Visual Studio Code__ 向けの __STM32ツール拡張機能STM32 VS code extension__ を使ってみましょう。
# STM32 VS code extensionのインストール
__拡張機能__ のアイコンをクリックし __拡張機能・マーケットプレイス__ を表示します。
__stm32__ と入力し、__STM32 VS code extension__ を選択し __インストール__ を __クリック__ します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/951aa42b-b21d-bfbc-e2f8-fcff5c0f7e98.png)
インストール後に左のツールバーに __STM32 VS code extension__ のアイコンが追加されています。
__STM32 VS code extension__ を開いてみましょう。
__STM32CubeCLT__ がインストールされていない事が表示されています。
使用には __STM32CubeMX、STM32CubeCLT__ が __必要__ です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/2ac16256-063a-4eae-55f7-f4436e773e68.png)
# STM32CubeCLTのインストール
__STM32CubeCLT__ のインストールを行います。
STマイクロのHPから __STM32CubeCLT__ を __ダウンロード__ します。

https://www.st.com/ja/development-tools/stm32cubeclt.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/2dbbecd1-dc45-1f69-763c-29e7119d7b26.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/cc98bdd7-17a5-fae3-f41f-d549a012ed59.png)
I Agreeをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/9aaaceda-c1d5-1bbf-325e-2b885d1bfeb4.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/8821a89d-799c-e971-123b-0293f2c4941c.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a4be3a01-9cba-8ff8-ffbc-4dc5272f8362.png)
インストールをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/3a9ccbd2-b556-711b-d1bc-85603e498a95.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/d77169d8-1898-3c85-5e11-97b353695edb.png)
Finishをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/0153195f-2960-db18-bc36-75f644e125a1.png)
# STM32CubeMXのインストール
次にSTM32CubeMXのインストールをしましょう。
Find STM32CubeMXをクリックするとSTM32CubeMXのダウンロードリンクが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/43371a00-7071-128e-2008-028f8c82ede4.png)
開くで進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/33e7bc54-6436-1bf0-1812-25478829d6d7.png)
Install for all usersをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/4419fe69-8efb-70c5-b735-f8e16ccb2947.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/19b40a8b-7f28-e069-db5c-7da2332255e5.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/6e1e45a3-7c0b-263f-ff6e-aff34bd9e797.png)
チェックボックスにチェックを入れた後、Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/69d2ebac-4b97-ea0f-ad9f-7176c8dd90b3.png)
チェックボックスにチェックを入れた後、Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/5d2bdb71-018c-ab59-366a-b497efbe31cb.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/325ee9bc-9e9d-370a-3089-79b9da2828cb.png)
OKをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/86e6b3c3-0aa0-29ad-b0d3-e2b4712c903f.png)
インストールをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/f9d668d3-992e-adbc-8ec1-42c21fef0386.png)
Nextをクリックして進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/3e4e6474-ea7e-1d04-cdab-12f868027677.png)
Finishでインストール完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a0cf2fad-f94a-ed09-16c0-b465f1ca3c32.png)
# Launch STM32CubeMX
VS CodeのSTM32 VS code extensionからLaunch STM32CubeMXをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/742c17e6-b46a-75b0-ebc9-3b45afe60dcf.png)
今回はNucleoボードを使用するためAccess To BOARD SELECTORをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/73a4f15a-ae0b-1601-4a1f-ac5409bafe8f.png)
今回使用するNucleo F401を検索し、Start Projectをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/bd4b171a-fb97-7612-d340-c16facfe0295.png)
Yesで進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/c12f0579-f994-f7ce-22f5-383e5d60e83a.png)
GENERATE CODEをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/9edabaef-d4e8-26c7-74b5-eefb58e44029.png)
Project Nameにプロジェクト名を
Toolchain IDEにCMAKEを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/c443c6c4-e75b-b605-8aea-6ec1d63bb9cb.png)
GENERATE CODEをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a168496a-1a04-3953-6e33-717412fa7582.png)
Open Folderをクリックし進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/17975566-f6a3-2f06-4bbe-7f58d31ede93.png)
# VS Codeへのインポート
VS CodeのSTM32 VS code extensionからImport Cmake Projectをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/47756e65-1835-988f-0ef1-a4df474cfe87.png)
先ほど生成したフォルダを選択し、フォルダーの選択をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/e68a970a-bf25-15bb-059f-baa2d7ece6e8.png)
正しいフォルダーをしていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/88f6020e-da71-0213-eba7-673aaa5dc502.png)
Import Porjectをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/7b202390-73c9-963f-07f3-cbe074bac3fe.png)
Open in this windowを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/23503a00-7355-affe-c7be-2bce774de318.png)
main.cの100行目に以下コードを追加し▷をクリックしてビルドします。
```
 HAL_Delay(500);
 HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/8f5c157f-e470-fd7b-8c36-69624b7dcdb3.png)
問題が無ければelfファイルが生成されます。
# デバッグ＆書込み
再度に、デバッグと書き込みをしましょう。
実行とデバッグをクリックします。
Build&DebugMicrocontroller-ST-Linkをクリックします。（またはF5)
次に、動作後、止まっている場合、右の▷をクリックし進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/ac724f62-b8ce-291c-795e-2e5c25bfc5c6.png)
終了時は□をクリックし止めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/87b59a40-bab1-b1f3-569c-865a6fe601fc.png)
# 総評
VS Codeですべてできるなら良いのですが、CubeMXとセットで使用する必要があり、STM32CubeIDEの方が使い勝手は良いように思えます。