0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Arduino_Core_STM32 をセットアップ

Last updated at Posted at 2022-10-16

2017年の記事「STM32F103の開発環境」
https://qiita.com/nanbuwks/items/594568db3f5dc1d6c5fd

では、Arduino で使えるSTM32の開発環境として以下のように書きました。

Arduino_STM32
rogerclarkmelbourne/Arduino_STM32
https://github.com/rogerclarkmelbourne/Arduino_STM32
Maple lib をベースにしたもの。現在のところこれが一番安定しているらしく、Arduino開発環境で使うにはファーストチョイス。
STM32Duino という名前でも呼ばれているが・・・

このときは、rogerclarkmelbourne 版と STM32 公式版の 2つの STM32Duino があり、rogerclarkmelbourne 版にアドバンテージがありました。
今はどうなっているのかな?

2022 年時点での STM32Duino

https://stm32duino.com/viewtopic.php?p=10432&hilit=rogerclarkmelbourne#p10432
このフォーラムによると、いまどきは rogerclarkmelbourne 版ではなく 公式の Arduino_Core_STM32 の方が主流ぽい。

公式版の Arduino_Core_STM32はこちらで公開されています。
https://github.com/stm32duino/Arduino_Core_STM32

STM32Duino のセットアップ

https://github.com/stm32duino/wiki/wiki/Getting-Started
ここの通りやっていきます。

環境

$ cat /etc/issue
Ubuntu 22.04 LTS \n \l

Arduino 2.0.0 をインストールしたうえで、STM32Duino をセットアップします。

Arduino IDEをセットアップ

2022/09/14 に Arduino2.0.0 がリリースされました。今回はこれを新たにセットアップしてみます。

こちらには以下の2つがありますが、今回は ZIP file の方をダウンロードして使用しています。

  • AppImage 64 bits (X86-64)
  • ZIP file 64 bits (X86-64)

解凍した ZIP ファイルを解凍

今まで portable 環境で使っていて、今回も同様に解凍した場所に portable フォルダを作成しておきました。しかしながら原在 2.0.0 では portable 機能は使えないようです。
「arduino-ide」をダブルクリックすると起動します。

image.png

STM32 に対応する

File-Preference の Additional boards manager URLs: に以下を設定する

//github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

ついでに、Show verbose output during の upload にチェックを入れておきます。
image.png

Tools-Boards-Boards manager で、STM で検索して、「STM32 MCU based boards by STMicroelectronics」をインストールします。
image.png

ボード設定をする

Tools-Board- STM32 MCU based boards から、Generic STM32F1 series
を選びます。

更に、Tools-Board part number から手持ちのボードに該当するものを選びます。

image.png

ST-link を使う

Tools-Upload method-で STM32CubeProgrammer(SWD)を選びます。

しかしこのままでは書き込みができません。

https://github.com/stm32duino/wiki/wiki/Getting-Started
によると、

To upload through SWD (STLink), Serial or DFU, STM32CubeProgrammer needs to be installed. See Upload methods.
とあります。

ということで、

STMicroの以下のページから STM32CubeProgrammer software for Linux をダウンロードします。

ダウンロードにはメールアドレス登録が必要です。
en.stm32cubeprg-lin_v2-11-0.zip をダウンロードして解凍すると、以下のような内容が出てきます。

image.png
SetupSTM32CubeProgrammer-2.11.0.linux をダブルクリックするとインストーラが起動します。
image.png
なるほど、こんなところにインストールされるのですね。
image.png

ここでST-Linkを取り付けて書き込みをしようとすると、以下のようにエラーが出ました。

libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/003/003, errno=13
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes
https://calinradoni.github.io/pages/200616-non-root-access-usb.html#final-config

USBデバイスを扱うパーミッションが不足してます。

デバイスIDを確認します。

$ lsusb
...
Bus 003 Device 003: ID 0483:3748 STMicroelectronics ST-LINK/V2
...

0483:3748 ということがわかったので、udev に登録します。

$ sudo vim /etc/udev/rules.d/80-stlinkv2.rules


内容は以下のようにしました。
「Non-root access for ST-LINK and USB-to-serial devices」
https://calinradoni.github.io/pages/200616-non-root-access-usb.html

ST-LINK V2

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2_%n"

ST-LINK V2.1

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv2-1_%n"

ST-LINK V3

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374d", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3loader_%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE="600", TAG+="uaccess", SYMLINK+="stlinkv3_%n"


反映します。

$ sudo udevadm control --reload-rules


書き込んでみます。

  -------------------------------------------------------------------
                    STM32CubeProgrammer v2.11.0                  
  -------------------------------------------------------------------

ST-LINK SN : 48FF6C064983535621371987
ST-LINK FW : V2J29S7
Board : --
Voltage : 3.23V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x410
Revision ID : Rev X
Device name : STM32F101/F102/F103 Medium-density
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M3
BL Version : --

Memory Programming ...
Opening and parsing file: sketch_oct15a.ino.bin
File : sketch_oct15a.ino.bin
Size : 6.98 KB
Address : 0x08000000

Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 6]
Download in Progress:

File download complete
Time elapsed during download operation: 00:00:00.480

RUNNING Program ...
Address: : 0x8000000
Application is running, Please Hold on...
Start operation achieved successfully

========================================================


無事書き込めました。


MySQL でグループごとの前年度のベスト1を表示


以下のように会員テーブルと、会員成績テーブルがあるとします。

MariaDB [test]> SELECT 会員番号,フリガナ FROM 会員;
+--------------+---------------------------+
| 会員番号 | フリガナ |
+--------------+---------------------------+
| 4 | アイ ウエオ |
| 6 | カキ クケコ |
| 3 | アブセド エフガフ |
| 1 | サシ スセソ |
| 8 | タチ ツテト |
+--------------+---------------------------+
5 rows in set (0.000 sec)

MariaDB [test]> SELECT * FROM 会員成績 LIMIT 5;
+------+---------------------+--------------+--------+
| stid | 日時 | 会員番号 | 成績 |
+------+---------------------+--------------+--------+
| 1 | 2019-02-18 12:14:06 | 4 | 36 |
| 2 | 2015-09-08 06:48:52 | 3 | 52 |
| 3 | 2018-07-04 02:19:29 | 2 | 72 |
| 4 | 2014-09-12 05:27:12 | 3 | 38 |
| 5 | 2019-11-30 02:13:12 | 2 | 96 |
+------+---------------------+--------------+--------+
5 rows in set (0.000 sec)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?