STM32F103C8T6 でLチカ


![IMG_7209.jpg](https://qiita-image-store.s3.amazonaws.com/0/49910/6c8d8696-a474-6b4a-4200-a0c88db50866.jpeg "IMG_7209.jpg")


# 調達

Amazonで購入しました。
[Amazon \| HiLetgo STM32F103C8T6 ARM STM32 Minimum システム 開発ボードモジュール Arduinoと互換\(2個セット\) \| ブレッドボード \| 産業・研究開発用品 通販](https://www.amazon.co.jp/gp/product/B01CZL6RGC/ref=oh_aui_search_detailpage?ie=UTF8&psc=1)

他にeBayでも購入できそうです。

ST-Link V2も購入しました。当初なんのためにあるのかわかりませんでしたが購入しといてよかったです。
[Amazon\.co\.jp: 【ノーブランド品】ST\-Link V2　プログラミング　ユニット　ミニ　金属　シェル　STM8 STM32　エミュレータ　ダウンローダ: DIY・工具・ガーデン](https://www.amazon.co.jp/gp/product/B01L2H2L2O/ref=oh_aui_search_detailpage?ie=UTF8&psc=1)

![51VD7brMRpL._SL1024_.jpg](https://qiita-image-store.s3.amazonaws.com/0/49910/fa36fb2d-801f-713e-3c37-2a3262734261.jpeg)


今回、ST-Link V2だけで進めていきます。



## ST-Link ドライバインストール

まずはST-Link V2のドライバインストールを行います。

[STSW\-LINK009 \- ST\-LINK, ST\-LINK/V2, ST\-LINK/V2\-1 USB driver signed for Windows7, Windows8, Windows10 \- STMicroelectronics](http://www.st.com/en/development-tools/stsw-link009.html)


64bitPCの場合にはdpinst_amd64.exeを実行

![IMG_7210.jpg](https://qiita-image-store.s3.amazonaws.com/0/49910/2b123bb5-2ed0-1f10-c1d4-a0b82c5efc37.jpeg "IMG_7210.jpg")


![IMG_7209.jpg](https://qiita-image-store.s3.amazonaws.com/0/49910/136f6e47-e2f1-2f32-c93e-2610cb9e4d8e.jpeg "IMG_7209.jpg")



# Lチカ

ArduinoIDEを起動
ツール＞ボード＞ボードマネージャ
Arduino SAM Boards (32-bits ARM Cortex-M3)をインストール
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/2f6e3774-a7a2-6db7-332b-7da90092593c.png)
Arduino SAM Boards


ボードを以下のように設定する

ボード: Generic STM32F103C series
Variant: STM32F103C8 (20k RAM, 64k Flash) または STM32F103CB (20k RAM, 128k Flash)
CPU Speed(MHz): 72MHz (Normal)
Upload method: STLink


LED_BUILTIN をPC13に変更する。

シリアルポートには何も表示されないが、
マイコンボードに書き込むボタンを押す事で、STM32に書き込む事ができます。



# STM32duino ブートローダー

## ST-LINK Utility 
ST-LINK をいったんPCから外す。

ST-LINK Utility を起動

[STSW\-LINK004 \- STM32 ST\-LINK utility \- STMicroelectronics](http://www.st.com/en/development-tools/stsw-link004.html)

ST-LINK をUSBに刺してからDevice　Connectを押す
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/ddf72ecb-3bbc-e6a4-4c75-7b9771daaae7.png)


Drive Connectを押す
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/77e8ca41-e3f0-3077-e35e-0aad2a651ffa.png)

YES＞＞＞が有効になったら押す
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/924c63cf-f2f1-40ef-2621-bc2bcdc8d449.png)

しばらく待って、Upgrade is successfulと表示されたら成功

![image](https://qiita-image-store.s3.amazonaws.com/0/49910/6549fadd-2549-b382-0586-75372d0f49af.png)

## 2duino ブートローダーの導入

1. ST-LINK Utility を起動。
2. ST-Link に STM32F103 ボードを接続する。
3. STM32F103 ボードの BOOT 0 ジャンパを 1 側にセットする (ISP ブートモード)

4. [Target | Program & Verify...]
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/cd2e5c58-eecb-e128-d683-0200105aadfe.png)

5. STM32duino-bootloader
[GitHub \- rogerclarkmelbourne/STM32duino\-bootloader: Bootloader for STM32F103 boards, for use with the Arduino\_STM32 repo and the Arduino IDE](https://github.com/rogerclarkmelbourne/STM32duino-bootloader)
STM32duino-bootloader-master\bootloader_only_binaries\generic_boot20_pc13.bin
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/c7795e18-4abf-9ab1-34ff-fb3693ebe1fd.png)

6. START ボタンを押す。
しばらく待つと以下の画面になり、書き込みが完了する。
![image](https://qiita-image-store.s3.amazonaws.com/0/49910/07aec51d-a2cc-81b4-8e08-88e430056c5d.png)

7. STM32F103 ボードの BOOT 0 ジャンパを 0 側にセットする (FLASH ブートモードに戻しておく)


[STM32F103の開発環境 \- Qiita](https://qiita.com/nanbuwks/items/594568db3f5dc1d6c5fd)

<pre>
「STM32duino」の整備にはST社も支援しているので今後はこちらが主流になるでしょうね。
両者の違いは「STM32duino」はST社のHALベース、「Arduino_STM32」はLeafLabs社独自のAPIがベース。当然「STM32duino」の方がメジャーかつ汎用的です。
「STM32duino」の整備にはST社も支援しているので今後はこちらが主流になるでしょうね。
</pre>


参考
[STM32F103](https://ht-deko.com/arduino/stm32f103c8t6.html#07)

[arduino IDE 1\.6\.4 で ARM STM32F103C8T6を使ってみる: 猫にコ・ン・バ・ン・ワ](http://nuneno.cocolog-nifty.com/blog/2015/05/arduino-ide-164.html)


[Arduino STM32関連情報 \- ArduinoSTM32 \- Scrapbox](https://scrapbox.io/ArduinoSTM32/Arduino_STM32%E9%96%A2%E9%80%A3%E6%83%85%E5%A0%B1)




[Arduino STM32 リファレンス 日本語版 \- ArduinoSTM32 \- Scrapbox](https://scrapbox.io/ArduinoSTM32/Arduino_STM32_%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9_%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88)