前々回から始めた 「ESP32を使ってWi-Fiしてみる」の第3回目です。
今回は STM32 の環境構築と接続の確認です。
投稿時の開発環境を記しておきます。
PC:Windows10 OS
IDE: STM32CubeIDE Version1.6.0
Configurator: STM32CubeMX Version6.2.0
Board: STM32Nucleo-F401RE
Module: ESP32-DevKitC-VE
ATコマンド試験用 USBシリアルモジュール: AE-FT234X
プロジェクトを作成する
IDEを起動し、File- New – STM32 Project を選択し、Target Selection ウィンドウが出たら Board Selector タブを選択し Boards List から NUCLEO-F401RE を選択し Next ボタンを押します。
Project 名に F401WiFiUartLL と入力し、Finishボタンを押します。
Initialize all peripherals with their default Mode ? と聞いてくるので Yesを押します。
UARTをLLで使う準備をする
小回りが利くコードを書くために HAL ではなく LL を使うことにしました。
Project Managerタブを選択し Advanced Settings の USART を HAL (初期値)から LL に変更します。(コンボボックスで選択する)
HALの部分をクリックするとコンボボックスのリストが表示されるので、LLを選択します。
Project – Build All を選択します。
Do you want Generate Code ? と聞いてくるのでRemenber my decision のチェックボックスにチェックを入れて OKを押します。
This action can be associated with C/C++ perspective.Do you want to open this perspective now?
と聞いてくることがあれば Remenber my decision のチェックボックスにチェックを入れて Yesを押します。
LLの初期化コードを確認する
main.cに MX_USART1_UART_Init()という関数がつくられています。
その中を見ると HAL_ではなく LL_から始まる関数がつくられていることが確認できます。
UARTのパラメーターを確認する
Project Explorer から F401UartLL.ioc をダブルクリックして GUIの画面を開きます。
Pinout & Configuration – Connectivity – USART1 を選択します。
Modeで Asynchronus を選択します。
Configuration – Parameter Settings のところで以下のように設定します。
(デフォルト設定は、この状態になっているはずです)
Baud Rate : 115200
Word Length : 8bits
Parity : None
Stop Bits : 1
ついでに割り込みの設定をしておく
Configuration – NVIC Settings の USART1 global interrupt の Enabled にチェックを入れます。
ここで一度ビルドしてコードを確認してみましょう。
Project – Build All を選択します。
main.c に MX_USART1_UART_Init() という関数がつくられます。
その関数の最後に以下のコードを追加しておくことで受信割り込みが可能になります。
LL_USART_EnableIT_RXNE(USART1); // 受信割り込みを許可する
割り込みのチェックボックスにチェックを入れただけでは、望む要因の割り込みが入らないことがあります。
リファレンスマニュアルを見ながら、適切な設定を行えるように習慣づけておけば良いと思います。
接続の確認
今回は STM32 の USART1 と ESP32 をつなぎます。
DTE(マイコン)同士の接続になるのでクロスで接続します。
当然ながら、USBケーブル2本を使ってPCと接続します。
続けると長くなりますので今回はこのへんで。。
お疲れさまでした。