STM32一覧

STM32いじってみた(9) Flash編

はい、これぞ僕が記事にしたかった内容です!!!さっきの SPI とか適当にやってましたが、この記事はデータシートを参照しながらガチで行きます。

Flash ってなんだ?プログラム書き込みか?と思われるでしょうが、そんな感じです。ここでは、プログラム書き込みで使っていないブロックを EEPROM 的にデータ保存領域として使わせていただく と言う意味で言っています。つまり、パラメータ等の値を不揮発性メモリに記憶したい!って思った時、この STM32 の Flash 構造がとっても役に立つんです。これはもう使うしか無いですよね!!!!(荒い鼻息)

また、僕と同じように OpenOCD を使う場合は Flash 領域でプログラムが占有するブロックのみが消去されるので、Flash 領域後半にデータを書き込んでおけばとってもよろしいのです。

という訳でまずはこの領域について説明をします。

続きを読む


STM32いじってみた(8) SPI編

どうも、このテーマは久しぶりですかね。やっぱり説明も雑になってしまって存在価値が疑わしくなりましたが、実際に動くコードの提供ということで相も変わらず適当にやっていきます。

今回はエンコーダー等の通信に欠かせない SPI 通信をやってみました。コード全体は以下です。なんと設定項目すっごく少ないんですね。

マスタモードのみでのコード提供です。スレーブモードは…スミマセン。行数で言うとペリフェラルの設定よりもポート設定のほうが長いというのがまた驚きです。
端子ですが、NSS という見慣れないものがあります。これは Slave Select 端子です。SS とか SSEL とか言うことが多いですかね。この極性とかもレジスタで自由に弄ることが出来ます。


STM32いじってみた(7) I2C送信編

続いて I2C です。が、この機能ではとりあえず秋月LCDモジュールを動作させることを目的にしたため、受信用の関数は作っていません。EEPROM は I2C が多いのですが、スミマセン。送信のみの実装とさせてください。
続きを読む





STM32いじってみた(4) PLLクロック編

皆さん問題です。今回いじっているこの STM32F3 は、周波数何 MHz で動作しているでしょうか!?

…正解は、8MHz です。遅っ!!
そう、何も設定しないとこの速度なのです。確か僕の使っている LPC1114 は標準で 48MHz なので、相当遅いですね…

ということで、高速動作を目指してまずはクロック周波数の変更をしたいと思います。そしてその後、ほぼ 1ms を計ってくれるタイマーをサクッと作成しましょう。
続きを読む


STM32いじってみた(6) UART編

今回は USART 機能を使って、UART 通信を実装していきたいと思います。

UART とは(ざっくりと)

この通信方式はシリアル通信のうちの1つです。電源やGND線以外に使う(必須な)信号線は TXD と RXD の2線のみです。SPI 通信や I2C のようにマスタ・スレーブの区別はなく、スレーブ選択も出来ません。(…多分。)
続きを読む


STM32いじってみた(3) – 設定の記法・GPIO編

前回の投稿から間が空きましたが、引き続いて STM32 でレジスタを使ったプログラミングをご紹介していきます。
今時はやはり設定が煩わしくて HAL 等の抽象化レイヤーを用いることが多いとは思いますが、その需要を無視して、一からレジスタを設定して使い方を理解していこうじゃないかのコンセプトでやっています。

何はともあれ、まずは ユーザーマニュアルとデータシートをダウンロードしてください。ユーザーマニュアルの番号は RM0316 です。
続きを読む