・2023/03/08
ESP32-S3で SPIを使う時に Arduinoでエラーが出た話
(ESP32 S3 SPI error VSPI was not declared in this scope)
Tags: [電子工作]
● ESP32-S3で SPIを使う時に Arduinoでエラーが出た話
error: 'VSPI' was not declared in this scope
note: suggested alternative: 'SPI'
のエラーが出ます。
下記で ESP32-S3でビルドした時に気が付きました。
・2023/03/06
ESP32で SPI接続の Color LCD ST7735S 160x80px IPSを動かす方法
ESP32 SPI IPS Color LCD ST7735S tutorial
#include <Arduino_GFX_Library.h>
Arduino_DataBus *bus = new Arduino_ESP32SPI(
12 /* DC */,
15 /* CS */,
13 /* SCK */,
14 /* MOSI */,
GFX_NOT_DEFINED /* MISO */,
VSPI /* spi_num */);
Sketch_35.1_TFT_Color_LCD_ByST7735S.ino:58:3: error: 'VSPI' was not declared in this scope
VSPI /* spi_num */);
^~~~
Sketch_35.1_TFT_Color_LCD_ByST7735S.ino:58:3: note: suggested alternative: 'SPI'
VSPI /* spi_num */);
^~~~
SPI
exit status 1
Compilation error: 'VSPI' was not declared in this scope
結論、下記を追加する。
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
#define VSPI FSPI
#endif
Arduino - Second SPI port for ESP32 S3
SPI - Arduino - ESP32 2.0.6 documentation
ESP32には下記の defineが存在します(抜粋)
CONFIG_IDF_FIRMWARE_CHIP_ID
CONFIG_IDF_TARGET
CONFIG_IDF_TARGET_ARCH_XTENSA
CONFIG_IDF_TARGET_ARCH_RISCV
CONFIG_IDF_TARGET_ESP32 ESP32-D系(元祖 ESP32)
CONFIG_IDF_TARGET_ESP32S2 ESP32-S2
CONFIG_IDF_TARGET_ESP32S3 ESP32-S3
CONFIG_IDF_TARGET_ESP32C3 ESP32-C3
ESP32系列の時に共通で defineしている物が無いので(プリプロセッサで判定できない) ESP32系列を判定するのは下記の様になりますが、
#if defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32S2) || ...
と言う記述はイケて無いからしたくないのだ!
ESP32を「まるっと」判定したい場合は ARDUINO_ARCH_ESP32が使えます。
defineの命名から Arduino環境が定義している様で Arduino環境でのみ使用可能と思います。
#if defined(ARDUINO_ARCH_ESP32)
ESP32の時
#else
それ以外の時(ESP8266、AVR、STM32等)
#endif
下記の I2C OLED SSD1306の描画の高速化の改善でも使用しました。
ESP32 improve display speed for SSD1306 #380
Tags: [電子工作]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!
ESP32で東方の Bad Apple!!の動画を再生する!実際にはパラパラ漫画です
2.4インチの大画面 OLED SSD1309で東方の Bad Apple!!の動画を再生する
2.42inch 128x64 OLED LCD Display module SSD1309で Bad Apple!!を再生します
SSD1306 OLEDの描画を高速化する方法
How to Speed Up OLED Drawing Speed
EPS32の I2Cの SCLの周波数をクロックアップして SSD1306 OLEDの描画を高速化する方法
OLED SSD1306で I2Cの SCLK周波数をドーピングで高速化して描画速度を爆速にする方法
【技適付き】Freenoveの ESP32-S3-WROOMの Basic Starter Kitを買ってみた、カメラ、SD-Card付きの学習キット
Freenove Basic Starter Kit for ESP32-S3-WROOM Onboard Camera Wireless Python C FNK0084
【技適付き】Freenoveの ESP32-WROVERの Ultimate Starter Kitを買ってみた、カメラ付きの学習キット
Freenove Ultimate Starter Kit for ESP32-WROVER Onboard Camera Wireless Python C FNK0047
LoRa通信を使用してポストに郵便物が投函されるとスマホの LINE宛に通知する IoTの作り方
LoRaを使用した IoT郵便受け LoRa IoT Mailbox Sensor with LINE Messaging API
ESP32で Slackに「勤怠管理」メッセージをワンボタン操作で投稿する方法
Slackの勤怠チャンネルに毎日毎日毎日毎日 手動で投稿するのが馬鹿らしいので ESP32で作った
ESP32の I2Sで MCLKが必須の CS4344 DAC Audioを使用する方法
ESP32で MCLKが必須の CS4344が問題無く使えます
ESP32で SPI接続の Color LCD ST7735S 160x80px IPSを動かす方法
ESP32 SPI IPS Color LCD ST7735S tutorial
【ソースコード有】ESP32で I2C接続の OLED SSD1306 128x64pxを動かす方法
ESP32 I2C OLED SSD1306 tutorial
ESP32-WROOMを購入したらヘンテコ技適マークもどきの基板が届いた話
Fake ESP32-WROOM Ignore FCC ID and Strange TELEC mark
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/hardware/esp32_s3_vspi_not_declared_error/