2
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?

STM32でクロック用のピンをGPIOとして使う【Arduinoフレームワーク】

Last updated at Posted at 2025-12-03

こんにちは、shuji4649です。
STM32のクロック用のピンをGPIOとして使用しようとしたときに少し詰まったので簡単な記事ですが書き残しておこうと思います。

この記事は Tuton Advent Calender 2025 の4日目の記事です。

問題

STM32F103C8T6で検証したのでSTM32F103C8T6をここでは例に挙げますが、他のSTM32F1マイコンでも共通することだと思います。

STM32F103C8T6のPD0PD1ピンは本来以下のように外部クロック用のピンですが、外部クロックを使用しない場合はGPIOとして使用することができます。

pin function
PD0 OSC_IN
PD1 OSC_OUT

参考:https://www.st.com/resource/en/datasheet/stm32f103c8.pdf

PlatformIOを使ってArduinoフレームワークでプログラムを書いていたのですが、そのままだとGPIOとして使用できず困りました。

解決策

以下のような1行を書くとPD0とPD1をリマップできます。

sample.ino
  AFIO->MAPR |= AFIO_MAPR_PD01_REMAP;

AFIO->MAPRのレジスタにPD01のリマップビットをセットしているイメージです。
OR演算なのはAFIO-MAPRに他リマップ設定も含まれているためです。

おわりに

ピンが余っているのであれば特殊なピンは避けて一般的なものを使うのがよさそうですね。

2
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
2
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?