/******************** F r i e n d s h i p E n d e r ******************** * 本程序隶属于 Readguy 开源项目, 请尊重开源开发者, 也就是我FriendshipEnder. * 如果有条件请到 extra/artset/reward 中扫描打赏,否则请在 Bilibili 上支持我. * 项目交流QQ群: 926824162 (萌新可以进来问问题的哟) * 郑重声明: 未经授权还请不要商用本开源项目编译出的程序. * @file guy_driver_config.h * @author FriendshipEnder (f_ender@163.com), Bilibili: FriendshipEnder * @brief readguy 基础配置文件. 用户可以根据自己对库的编译需求来修改此文件. * * 如果你希望在程序代码内包含引脚定义, 请参考此文件下方的注释来确定并编译 * 这样就可以只针对你设计的这一个硬件来设定引脚功能. * 关于屏幕配置, 请参考 guy_epaper/guy_epaper_config.h 文件来配置到底哪些屏幕型号的屏幕会被包含进来 * 可以禁用WiFi功能来减少程序的flash消耗 * @version 1.1 * @date create: 2023-09-21 * last modify: 2023-11-11 * @attention * Copyright (c) 2022-2023 FriendshipEnder * * Apache License, Version 2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _READGUY_DRIVER_CONFIG_H_FILE #define _READGUY_DRIVER_CONFIG_H_FILE // *** Do not include any file here! /* #define _EPD_CS_PIN 15 //D8, 显示屏的片选引脚 #define _EPD_DC_PIN 5 //D1, 显示屏的DC引脚 #define _EPD_RST_PIN -1 //reserved 保留的重置引脚 #define _EPD_BUSY_PIN 4 //D2 显示屏的Busy引脚 #define _SD_CS_PIN 0 //D3, SD卡的片选引脚 #define _BtnL 5 //D1, 左键 #define _BtnM 12 //中间键 D6引脚 #define _BtnR 2 //D4 右键 //对于甘草酸不酸的新版本板子: //busy 4 rst 2 dc 0 cs 15 sck / mosi / sdcs 5 btnL rx(3) btnM 0 //对于四个按钮的4.2屏开发板: //clk 14 cs 15 mosi 13 dc 27 rst 26 busy 25 //sd cs 4 miso 12 (共线) 按键 k1 5 k2 17 k3 16 k4 0 前置光 19/18/23 //对于lilygo t-watch epaper 开发板: //cs 5 dc 19 rst 27 busy 38 clk 18 mosi 23 //SD卡 cs 13 miso 2 mosi 15 sck 14 按键1 36 电容 32(高电平使能) blk 12 */ // ------------------ definations - 定义 - /// @brief 使用静态的数据 !!!注意:注释此选项编写的程序是不支持跨平台运行的!!! /// @note 相比于禁用WiFi配网功能, 禁用此功能减少的flash并不多, 为保证程序可在不同屏幕上运行, 请不要注释此选项 // 关闭此选项自动禁用wifi功能. 如需wifi功能需要自己在程序里加. #define DYNAMIC_PIN_SETTINGS /// @brief 启用WIFI配网功能.必须先启用 #define DYNAMIC_PIN_SETTINGS. 此选项对 ESP32xx 会减少大量flash. #define READGUY_ENABLE_WIFI /// @brief 启用I2C功能. 可用于联网时钟, 温度计, 陀螺仪等外设. 目前暂不支持库内使用类似函数. 仅可以提供引脚定义 //#define READGUY_ENABLE_I2C /// @note 现在库不提供任何I2C驱动, 只提供引脚定义的存储和读取, 这几乎不增加多少代码. 因此本宏不再使用 /** @brief 启用SD卡功能. 开启此功能将会使用内置SD卡管理功能. 关闭后仅可保存SD卡用到的引脚. @note 会破坏兼容性. 若没有启用通用的SD卡驱动程序, 那么那些跨屏台编译的程序将无法用guyFS读取到SD卡. 若用户程序希望能从外部加载SD卡, 可以使用getSdMiso()等函数获取SD卡的Miso等引脚, 再由用户程序初始化SD卡. */ #define READGUY_ENABLE_SD /// @brief 使用LittleFS作为片上文件系统, 注释此行则用SPIFFS(功能少, 不好用) #define READGUY_USE_LITTLEFS 1 /// @brief 使用esp8266时, EEPROM(类似NVS)的存储位置起点 (从起点开始的40字节被readguy所使用) 可选值: 0~4045 /// @note 对于单一项目来说, 此选项不建议更改, 请在项目初期就确定此变量的值. #define READGUY_ESP8266_EEPROM_OFFSET 2 /// @brief ESP32按键服务任务的栈空间大小, 不建议普通用户更改. 默认值1024字节. 小于此大小会使程序栈溢出. #ifdef CONFIG_IDF_TARGET_ESP32S3 #define BTN_LOOPTASK_STACK 1536 #else #define BTN_LOOPTASK_STACK 1024 #endif /// @brief ESP32按键服务任务运行在哪个核心. 通常运行在核心0上. #define BTN_LOOPTASK_CORE_ID 0 /// @brief ESP32按键服务任务的优先级. 高于arduino默认任务即可 #define BTN_LOOPTASK_PRIORITY 3 /// @brief 按键任务间隔多久调用一次, 默认为20毫秒. 对于需要精确读取按钮的程序, 请酌情减小此数值 #define BTN_LOOPTASK_DELAY 20 /// @brief 使用ESP8266时, 屏幕和SD卡的SPI速率. 默认为20MHz. #define ESP8266_SPI_FREQUENCY 20000000 /// @brief 使用ESP32且屏幕与SD卡用不同的SPI总线时, 驱动屏幕的SPI速率 #define ESP32_DISP_FREQUENCY 20000000 /// @brief ESP32驱动SD卡的速率. 当ESP32在与SD卡共享SPI时, 屏幕依据此处的速率. #define ESP32_SD_SPI_FREQUENCY 20000000 /// @brief debug专用, 请保持处于注释状态. 正常开机从NVS读取引脚配置数据, 取消注释则每次开机需要重新配置 //#define INDEV_DEBUG 1 #ifndef DYNAMIC_PIN_SETTINGS #ifdef ESP8266 #define READGUY_shareSpi 1 //EPD和SD卡是否共享SPI,对于ESP8266必须设置为1 #define READGUY_epd_type MEPD_DEBUG_DISPLAY // 对应的epd驱动程序代号, -1为未指定. //显示驱动部分, 显示默认使用vspi (vspi也是默认SPI库的通道) #define READGUY_epd_mosi -1 // 目标显示器的 MOSI 引脚, ESP8266必须设置为-1 #define READGUY_epd_sclk -1 // 目标显示器的 SCLK 引脚, ESP8266必须设置为-1 #define READGUY_epd_cs 15 // 目标显示器的 CS 引脚 #define READGUY_epd_dc 5 // 目标显示器的 DC 引脚 #define READGUY_epd_rst -1 // 目标显示器的 RST 引脚,不用则设为-1. #define READGUY_epd_busy -1 // 目标显示器的 BUSY 引脚 //sd卡驱动部分, 默认使用hspi (sd卡建议用hspi) #define READGUY_sd_miso -1 // 目标sd卡的 MISO 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_mosi -1 // 目标sd卡的 MOSI 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_sclk -1 // 目标sd卡的 SCLK 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_cs 0 // 目标sd卡的 CS 引脚 #define READGUY_i2c_sda -1 // 目标i2c总线的SDA引脚, 当且仅当启用i2c总线时才生效 #define READGUY_i2c_scl -1 // 目标i2c总线的SCL引脚, 当且仅当启用i2c总线时才生效 //按键驱动部分, 为负代表高触发, 否则低触发, //注意, 这里的io编号是加1的, 即 1或-1 代表 gpio0 的低触发/高触发 #define READGUY_btn1 ( 5+1) //按键1,注意需要+1,这里示例已经加了 设置为负的来允许高电平触发 #define READGUY_btn2 (12+1) //按键2,注意需要+1 #define READGUY_btn3 ( 2+1) //按键3,注意需要+1 #define READGUY_bl_pin 4 //前置光接口引脚IO #else //对于非ESP8266 #define READGUY_shareSpi 0 //EPD和SD卡是否共享SPI, 此处不共享 #define READGUY_epd_type READGUY_DEV_154B // 对应的epd驱动程序代号, -1为未指定 //显示驱动部分, 显示默认使用vspi (vspi也是默认SPI库的通道) #define READGUY_epd_mosi 23 // 目标显示器的 MOSI 引脚 #define READGUY_epd_sclk 18 // 目标显示器的 SCLK 引脚 #define READGUY_epd_cs 5 // 目标显示器的 CS 引脚 #define READGUY_epd_dc 19 // 目标显示器的 DC 引脚 #define READGUY_epd_rst 27 // 目标显示器的 RST 引脚,不用则设为-1. #define READGUY_epd_busy 38 // 目标显示器的 BUSY 引脚 //sd卡驱动部分, 默认使用hspi (sd卡建议用hspi) #define READGUY_sd_miso 2 // 目标sd卡的 MISO 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_mosi 15 // 目标sd卡的 MOSI 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_sclk 14 // 目标sd卡的 SCLK 引脚, sd_share_spi == 1 时无效 #define READGUY_sd_cs 13 // 目标sd卡的 CS 引脚 #define READGUY_i2c_sda -1 // 目标i2c总线的SDA引脚, 当且仅当启用i2c总线时才生效 #define READGUY_i2c_scl -1 // 目标i2c总线的SCL引脚, 当且仅当启用i2c总线时才生效 //按键驱动部分, 为负代表高触发, 否则低触发, //注意, 这里的io编号是加1的, 即 1或-1 代表 gpio0 的低触发/高触发 #define READGUY_btn1 (36+1) //按键1,注意需要+1,这里示例已经加了 #define READGUY_btn2 -(32+1) //按键2,注意需要+1,此处前面的负号表示允许高电平触发 #define READGUY_btn3 0 //按键3,注意需要+1, 不用的按钮应当设置为0 #define READGUY_bl_pin 12 //前置光接口引脚IO #endif #define READGUY_rtc_type 0 //使用的RTC型号(待定, 还没用上) #elif defined(READGUY_ENABLE_WIFI) #define READGUY_ESP_ENABLE_WIFI //使用WIFI进行配网等功能 #endif #undef READGUY_ENABLE_WIFI #endif /* END OF FILE. ReadGuy project. Copyright (C) 2023 FriendshipEnder. */