STM32マイコン関連
UARTについて
70.2 UART Firmware driver API descriptionを参照
最大入力可能電圧(I/O)
STM32には、5V電圧信号を入力できる端子があります。
具体的な端子はデータシートに「FT」(Five voltage Tolerant)と記載されています。
マイコンの電源電圧が3.6V以下であっても、この端子には5V電圧を印加できます。
ただし、その場合の入力閾値電圧は5V基準ではなく、マイコンの電源電圧VDD基準のままです。
一方、GPIOはNMOSオープン・ドレイン構成が可能です。
この場合、外部にプルアップ抵抗をつなぎ、プルアップ電圧を5Vにすると、見かけ上、5VのHighレベル信号を出力することができます。
通信:
I2C:
SDA:データ
SCL:クロック
使用するマイコン:
mbedマイコンについて
STM32F401RE
使用するツール
上記URLからそれぞれダウンロードする。
参考:
CubeMXの使い方について
https://www.youtube.com/watch?v=TtHo3axOy3o
HALライブラリ:
参考サイト:
操作
STM32CubeMXを起動
File→New Projectを押す。
Board を検索する。(今回は、STM32F401REを使用)
ダブルクリックでボードの確定。
使用するpinをクリック。(今回は、Pin A1を使用する)
GPIO_Outputに変更
Project Managerに移動
Project Nameを変更(自分の好きな名前)
→今回は LED_1(Blinking)
Project Locationでこのプロジェクトを保存する場所を選択
Toolchain/IDEを変更
→今回は、TrueSTDIOを使用するため、TrueSTDIOに変更
GENERATE CODEを押す。
プロジェクトが作成される。
Opne Folderを押すと、作成したプロジェクトの場所に飛べる。
Atolic TrueStdioを起動
work spaceはそのままでOKを押す。
File →Open Projectを押す。
インポート元のディレクトリーをクリック
先ほどCubeMXで作成したファイルの場所を選択
フォルダーのチェックマークを先ほど作成したファイルの場所以外外す。
終了をクリック
ファイルが開かれたら、Core →Src→main.cをダブルクリック
→main.cに記載していく
int main(void){ }を探し、今回は繰り返すために、その中のWile(1){ }に処理を記載する。
下の方に行くと、HAL_GPIO_writePin(xxxx);というのがある。
これがCubeMXで作成したpinの初期設定となっている。
int main(void){ Wile(1) { }} に下記プログラムを記載する。
トンカチマークをクリック→ビルドが実行される。
エラーが出なければOK
出たら調べてください。
MbedをPCに接続する。
Pin A1にLEDと抵抗を取付け。
歯車っぽい緑のやつをクリック
デバックを実行
main.cの場所を聞かれるので、Locale Fileをクリックmain.cを選択
問題が無くなったら、再生をクリック
そうするとプログラムが実行され、LEDが点滅し始める。
参考:
参考動画:
https://www.youtube.com/watch?v=ivCQkj4U4kM
printfの導入
シリアル通信 UART関連
stm32でサーボモータ制御する