STM32におけるI²C通信のソフトウェア実装

I²C(Inter-Integrated Circuit)は、シリアルデータ線(SDA)とシリアルクロック線(SCL)の2本で構成される同期式シリアルバスです。標準モードでは最大100 kbps、高速モードでは400 kbpsまでの通信が可能です。SDAおよびSCLはオープンドレイン出力で、外部プルアップ抵抗が必要です。通信はマスタがスレーブアドレスを送信し、対応するスレーブがACKを返すことで確立さ ...

6月3日 16:15 投稿

STM32 における RTC とバックアップレジスタを用いた時刻保持システム

RTC とバックアップドメインの概要 RTC(Real-Time Clock)は、システムメイン電源が遮断された場合でも動作を継続できる独立したタイモジュールです。STM32 マイクロコントローラでは、RTC とバックアップレジスタ(BKP)はバックアップドメインに属しており、システムリセットが発生してもデータが保持されます。 VDD 電源(2.0V〜3.6V)が失われた場合でも、VBAT ピン( ...

6月2日 19:40 投稿

STM32におけるFreeRTOSタスク生成とスケジューリング動作の検証

FreeRTOSにおけるタスクスケジューリングの基礎 FreeRTOSでは、異なる優先度を持つタスク間では「優先度スケジューリング」が、同じ優先度を持つタスク間では「ラウンドロビン(タイムスライス)スケジューリング」が採用されます。ここでは、CMSIS-RTOS APIを用いたタスクの生成から、スケジューリングの挙動、およびタスクの待機状態への遷移までを実験を通じて確認しま ...

6月1日 21:03 投稿

STM32マイコンによるDS18B20およびDHT11センサのドライバ実装

DS18B20デジタル温度センサの実装 本セクションでは、STM32マイコンのGPIOポートを用いて1-Wireバスプロトコルをソフトウェアでエミュレートし、DS18B20温度センサと通信を行う手順について解説します。取得した温度データはTFT LCDモジュール上にリアルタイムで表示されます。 1-Wireバスプロトコルの概要 1-Wireバスは、クロックとデータの両方を単一の信号線で双方向通 ...

5月26日 04:47 投稿

STM32CubeMX 生成コードの保守性を高めるリファクタリング手法

自動生成コードが抱える構造的課題 現代の組み込み開発において、STM32CubeMX は事実上の標準ツールとなっています。GUI による設定と自動コード生成機能は、レジスタレベルの複雑な初期化を大幅に簡素化しました。しかし、生成された main.c を開くと、多くの開発者が以下の様な構造に直面します。 UART_HandleTypeDef huart1; TIM_HandleTypeDef htim2; void MX_USART1_ ...

5月21日 16:36 投稿

Keil uVision5でSTM32割り込みシステムを設定する完全ガイド

STM32割り込み設定の完全ガイド:Keil uVision5環境での実践的実装 嵌入式システム開発において、割り込みシステムは必須の知識です。Keil uVision5を使用してSTM32(ここでは一般的なF103シリーズを例)の外部割り込みを正しく設定する方法について、この記事では詳しく解説します。多くの開発者が直面する典型的な問題を避け、効率的な割り込み処理を実現するための具体 ...

5月19日 09:23 投稿

STM32におけるボタンのシングルクリック、ダブルクリック、ロングプレス実装

CubeMX設定 1.GPIO設定 GPIOをプルアップ入力モードに設定します。 2.タイマー設定 タイマーを10ms間隔で割り込みを有効に設定します。 変数定義 struct button_states { bool pressed_flag; // ボタン押下フラグ bool current_state; // ボタン状態 bool long_press_flag; // ロングプレスフラグ bool double_click_flag; // ダブルクリックフラグ ...

5月18日 02:54 投稿

STM32における外部割込(EXTI)とNVIC制御の実装手法

システム割込みの基礎概念 プロセッサの動作において、割込みは主ループの実行を一時停止し、緊急度に応じたサブルーチンへ処理を委譲する機構です。特定の物理信号や内部タイマの経過、通信バッファの到達など、所定のイベントが発生した瞬間にCPUの制御権が切り替わり、処理完了後に元の文脈に復帰します。この機構により、ポーリング方式に依存しない非同期処理が実現さ ...

5月14日 18:35 投稿

STM32マイクロコントローラを使用したスマート電子秤の開発ガイド

STM32は高性能なマイクロコントローラシリーズであり、様々なスマート電子機器、特に電子秤に広く利用されています。本記事では、STM32マイクロコントローラを使用してスマート電子秤を制御する方法について解説します。 スマート電子秤の基本原理を理解するところから始めましょう。スマート電子秤は主に重量センサー、制御回路、およびディスプレイで構成されています。 ...

5月13日 10:57 投稿