対、また私です。最近 STM32 を学んでタイマーを学びましたが、51 に比べて複雑さは一段と増しました。そして、多くの用語や公式も増えました。ここで簡単にまとめて、学んだことを整理します。
(一)GPIO#
「GPIO」は「General Purpose Input Output」の略で、「汎用入出力インターフェース」という意味です。信号を受け取ったり出力したりできます。
(二)AFIO#
AFIO は「Alternate Function I/O」の略で、「複用機能入出力」という意味です。STM32 では一部のピンが複用されているため、時には AFIO を調整する必要があります。また、外部割り込みの際にも AFIO を設定して割り込みピンを選択する必要があります。
(三)割り込み関連#
- 「EXTI」は外部割り込みレジスタで、GPIO ピンの電平信号を監視して NVIC に割り込みを要求します。
- 「NVIC」の正式名称は「Nested vectored interrupt controller」で、すなわちネストされたベクタ割り込みコントローラで、割り込みの管理と制御を行います。
(四)タイマー関連#
- 「PSC」はプリスケーラーを表します。
- 「CNT」はカウンターを表し、CNT が ARR に達するとオーバーフローします。
- 「ARR」は自動リロードレジスタを表します。
- 「CCR」は「Capture/Compare Register」の略で、日本語では「キャプチャ比較レジスタ」といい、ARR と比較して PWM 波を生成します。
- 「CK」はクロックを表し、「Clock」の略です。
- 「CK_CNT」はタイマーのカウント周波数です。
- 「CK_PSC」はタイマーのプリスケール値で、STM32 ではこの値は 72MHz です。
(五)計算公式#
- タイマーオーバーフロー周波数:CK_CNT_OV=CK_CNT/ARR+1=CK_PSC/PSC+1/ARR+1
- PWM デューティ比:Duty=CRR/ARR+1
- PWM 周波数:Freq=CK_PSC/PSC+1/ARR+1
- PWM 解像度:Reso=1/ARR+1
現在、タイマーを学び始めたばかりで、設定する必要があることはこれだけです。まだ粗略に理解しているだけで、私はまだ大学 1 年生で、専門の授業は始まっていないので、多くのことが理解できません。ただ、使い方を学んでいるだけで、今後さらに詳しく学ぶ予定です。