Directly pull in the i2c_lcd driver
This commit is contained in:
parent
1343618729
commit
beb7f0bfb9
357
main/drivers/i2c_lcd_pcf8574.c
Normal file
357
main/drivers/i2c_lcd_pcf8574.c
Normal file
@ -0,0 +1,357 @@
|
|||||||
|
/// \file i2c_lcd_pcf8574.c
|
||||||
|
/// \brief Liquid Crystal display driver with PCF8574 adapter for esp-idf
|
||||||
|
///
|
||||||
|
/// \author Femi Olugbon, https://iamflinks.github.io
|
||||||
|
/// \copyright Copyright (c) 2024 by Femi Olugbon
|
||||||
|
///
|
||||||
|
/// ChangeLog see: i2c_lcd_pcf8574.h
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "i2c_lcd_pcf8574.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "esp_check.h"
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define TAG "I2C_LCD_PCF8574"
|
||||||
|
|
||||||
|
#define I2C_MASTER_TIMEOUT_MS 1000
|
||||||
|
|
||||||
|
|
||||||
|
// private functions
|
||||||
|
static void lcd_send(i2c_lcd_pcf8574_handle_t* lcd, uint8_t value, bool is_data);
|
||||||
|
static void lcd_write_nibble(i2c_lcd_pcf8574_handle_t* lcd, uint8_t half_byte, bool is_data, i2c_cmd_handle_t cmd);
|
||||||
|
static void lcd_write_i2c(i2c_lcd_pcf8574_handle_t* lcd, uint8_t data, bool is_data, bool enable);
|
||||||
|
|
||||||
|
void lcd_init(i2c_lcd_pcf8574_handle_t* lcd, uint8_t i2c_addr, i2c_port_t i2c_port) {
|
||||||
|
lcd->i2c_addr = i2c_addr;
|
||||||
|
lcd->i2c_port = i2c_port;
|
||||||
|
lcd->backlight = 0;
|
||||||
|
lcd->entrymode = 0x02; // Init the LCD with an internal reset
|
||||||
|
lcd->displaycontrol = 0x04;
|
||||||
|
lcd->rs_mask = 0x01;
|
||||||
|
lcd->rw_mask = 0x00;
|
||||||
|
lcd->enable_mask = 0x04;
|
||||||
|
lcd->data_mask[0] = 0x10;
|
||||||
|
lcd->data_mask[1] = 0x20;
|
||||||
|
lcd->data_mask[2] = 0x40;
|
||||||
|
lcd->data_mask[3] = 0x80;
|
||||||
|
lcd->backlight_mask = 0x08;
|
||||||
|
} // lcd_begin()
|
||||||
|
|
||||||
|
void lcd_begin(i2c_lcd_pcf8574_handle_t* lcd, uint8_t cols, uint8_t rows) {
|
||||||
|
|
||||||
|
// Ensure the cols and rows stay within max limit
|
||||||
|
lcd->cols = (cols > 80) ? 80 : cols;
|
||||||
|
lcd->lines = (rows > 4) ? 4 : rows;
|
||||||
|
|
||||||
|
lcd->row_offsets[0] = 0x00;
|
||||||
|
lcd->row_offsets[1] = 0x40;
|
||||||
|
lcd->row_offsets[2] = 0x00 + cols;
|
||||||
|
lcd->row_offsets[3] = 0x40 + cols;
|
||||||
|
|
||||||
|
// Initialize the LCD
|
||||||
|
lcd_write_i2c(lcd, 0x00, false, false);
|
||||||
|
esp_rom_delay_us(50000);
|
||||||
|
|
||||||
|
// This follows after the reset mode
|
||||||
|
lcd->displaycontrol = 0x04;
|
||||||
|
lcd->entrymode = 0x02;
|
||||||
|
|
||||||
|
// The following are the reset sequence: Please see "Initialization instruction in the PCF8574 datasheet."
|
||||||
|
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
// We left-shift the device addres and add the read/write command
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
|
||||||
|
lcd_write_nibble(lcd, 0x03, false, cmd);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
esp_rom_delay_us(4500);
|
||||||
|
|
||||||
|
cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
lcd_write_nibble(lcd, 0x03, false, cmd);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
esp_rom_delay_us(200);
|
||||||
|
|
||||||
|
cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
lcd_write_nibble(lcd, 0x03, false, cmd);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
esp_rom_delay_us(200);
|
||||||
|
|
||||||
|
// Set the data interface to 4-bit interface (PCF8574 uses 4-bit interface)
|
||||||
|
cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
lcd_write_nibble(lcd, 0x02, false, cmd);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
|
||||||
|
// Instruction: function set = 0x20
|
||||||
|
lcd_send(lcd, 0x20 | (rows > 1 ? 0x08 : 0x00), false);
|
||||||
|
|
||||||
|
// Set the display parameters (turn on display, clear, and set left to right)
|
||||||
|
lcd_display(lcd);
|
||||||
|
lcd_clear(lcd);
|
||||||
|
lcd_left_to_right(lcd);
|
||||||
|
} // lcd_begin()
|
||||||
|
|
||||||
|
// Clear the display content
|
||||||
|
void lcd_clear(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Clear display = 0x01
|
||||||
|
lcd_send(lcd, 0x01, false);
|
||||||
|
// Clearing the display takes a while: takes approx. 1.5ms
|
||||||
|
esp_rom_delay_us(1600);
|
||||||
|
} // lcd_clear()
|
||||||
|
|
||||||
|
// Set the display to home
|
||||||
|
void lcd_home(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Return home = 0x02
|
||||||
|
lcd_send(lcd, 0x02, false);
|
||||||
|
// Same as clearing the display: takes approx. 1.5ms
|
||||||
|
esp_rom_delay_us(1600);
|
||||||
|
} // lcd_home()
|
||||||
|
|
||||||
|
// Set the cursor to a new position.
|
||||||
|
void lcd_set_cursor(i2c_lcd_pcf8574_handle_t* lcd, uint8_t col, uint8_t row) {
|
||||||
|
// Check the display boundaries
|
||||||
|
if (row >= lcd->lines) {
|
||||||
|
row = lcd->lines - 1;
|
||||||
|
}
|
||||||
|
if (col >= lcd->cols) {
|
||||||
|
col = lcd->cols - 1;
|
||||||
|
}
|
||||||
|
// Instruction: Set DDRAM address = 080
|
||||||
|
lcd_send(lcd, 0x80 | (lcd->row_offsets[row] + col), false);
|
||||||
|
} // lcd_set_cursor()
|
||||||
|
|
||||||
|
// Turn off the display: fast operation
|
||||||
|
void lcd_no_display(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Display on/off control = 0x04
|
||||||
|
lcd->displaycontrol &= ~0x04;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_no_display()
|
||||||
|
|
||||||
|
// Turn on the display: fast operation
|
||||||
|
void lcd_display(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Display on/off control = 0x04
|
||||||
|
lcd->displaycontrol |= 0x04;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_display()
|
||||||
|
|
||||||
|
// Turn on the cursor
|
||||||
|
void lcd_cursor(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Cursor on/off control = 0x02
|
||||||
|
lcd->displaycontrol |= 0x02;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_cursor()
|
||||||
|
|
||||||
|
// Turn off the cursor
|
||||||
|
void lcd_no_cursor(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Cursor on/off control = 0x02
|
||||||
|
lcd->displaycontrol &= ~0x02;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_no_cursor()
|
||||||
|
|
||||||
|
// Turn on the blinking
|
||||||
|
void lcd_blink(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Blink on/off control = 0x01
|
||||||
|
lcd->displaycontrol |= 0x01;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_blink()
|
||||||
|
|
||||||
|
// Turn off the blinking
|
||||||
|
void lcd_no_blink(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Display Control: Blink on/off control = 0x01
|
||||||
|
lcd->displaycontrol &= ~0x01;
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
lcd_send(lcd, 0x08 | lcd->displaycontrol, false);
|
||||||
|
} // lcd_no_blink()
|
||||||
|
|
||||||
|
// This command will scroll the display left by one step without changing the RAM
|
||||||
|
void lcd_scroll_display_left(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Cursor or display shift - 0x10
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
// Control: Left shift control = 0x00
|
||||||
|
// 0x10 | 0x08 | 0x00 = 0x18
|
||||||
|
lcd_send(lcd, 0x18, false);
|
||||||
|
} // lcd_scroll_display_left()
|
||||||
|
|
||||||
|
// This command will scroll the display right by one step without changing the RAM
|
||||||
|
void lcd_scroll_display_right(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Cursor or display shift - 0x10
|
||||||
|
// Instruction: Display mode: 0x08
|
||||||
|
// Control: Left shift control = 0x04
|
||||||
|
// 0x10 | 0x08 | 0x04 = 0x1C
|
||||||
|
lcd_send(lcd, 0x1C, false);
|
||||||
|
} // lcd_scroll_display_right()
|
||||||
|
|
||||||
|
// Controlling the entry mode: This is for text that flows left to right
|
||||||
|
void lcd_left_to_right(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Entry mode set, set increment/decrement = 0x02
|
||||||
|
lcd->entrymode |= 0x02;
|
||||||
|
lcd_send(lcd, 0x04 | lcd->entrymode, false);
|
||||||
|
} // lcd_left_to_right()
|
||||||
|
|
||||||
|
// Controlling the entry mode: This is for text that flows right to left
|
||||||
|
void lcd_right_to_left(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Entry mode set, clear increment/decrement = 0x02
|
||||||
|
lcd->entrymode &= ~0x02;
|
||||||
|
lcd_send(lcd, 0x04 | lcd->entrymode, false);
|
||||||
|
} // lcd_right_to_left()
|
||||||
|
|
||||||
|
// This will justify the text to the right from the cursor
|
||||||
|
void lcd_autoscroll(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Entry mode set, set shift = 0x01
|
||||||
|
lcd->entrymode |= 0x01;
|
||||||
|
lcd_send(lcd, 0x04 | lcd->entrymode, false);
|
||||||
|
} // lcd_autoscroll()
|
||||||
|
|
||||||
|
// This will justify the text to the left from the cursor
|
||||||
|
void lcd_no_autoscroll(i2c_lcd_pcf8574_handle_t* lcd) {
|
||||||
|
// Instruction: Entry mode set, clear shift = 0x01
|
||||||
|
lcd->entrymode &= ~0x01;
|
||||||
|
lcd_send(lcd, 0x04 | lcd->entrymode, false);
|
||||||
|
} // lcd_no_autoscroll()
|
||||||
|
|
||||||
|
// Setting the backlight: It can only be turn on or off.
|
||||||
|
// Current backlight value is saved in the i2c_lcd_pcf8574_handle_t struct for further data transfers
|
||||||
|
void lcd_set_backlight(i2c_lcd_pcf8574_handle_t* lcd, uint8_t brightness) {
|
||||||
|
// Place the backlight value in the lcd struct
|
||||||
|
lcd->backlight = brightness;
|
||||||
|
// Send no data
|
||||||
|
lcd_write_i2c(lcd, 0x00, true, false);
|
||||||
|
} // lcd_set_backlight()
|
||||||
|
|
||||||
|
// Custom character creation: allows us to create up to 8 custom characters in the CGRAM locations
|
||||||
|
void lcd_create_char(i2c_lcd_pcf8574_handle_t* lcd, uint8_t location, uint8_t charmap[]) {
|
||||||
|
location &= 0x7; // Only 8 locations are available
|
||||||
|
// Set the CGRAM address
|
||||||
|
lcd_send(lcd, 0x40 | (location << 3), false);
|
||||||
|
for (int i = 0; i < 8; i++) {
|
||||||
|
lcd_write(lcd, charmap[i]);
|
||||||
|
}
|
||||||
|
} // lcd_create_char()
|
||||||
|
|
||||||
|
// Write a byte to the LCD
|
||||||
|
void lcd_write(i2c_lcd_pcf8574_handle_t* lcd, uint8_t value) {
|
||||||
|
lcd_send(lcd, value, true);
|
||||||
|
} // lcd_write()
|
||||||
|
|
||||||
|
// Print characters to the LCD: cursor set or clear instruction must preceded this instruction, or it will write on the current text.
|
||||||
|
void lcd_print(i2c_lcd_pcf8574_handle_t* lcd, const char* str) {
|
||||||
|
while (*str) {
|
||||||
|
lcd_write(lcd, *str++);
|
||||||
|
}
|
||||||
|
} // lcd_print()
|
||||||
|
|
||||||
|
// Additional function to print numbers as formatted string
|
||||||
|
void lcd_print_number(i2c_lcd_pcf8574_handle_t* lcd, uint8_t col, uint8_t row, uint8_t buf_len, const char *str, ...) {
|
||||||
|
// Ensure the buffer length is greater than zero
|
||||||
|
if (buf_len == 0)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "Buffer length must be greater than 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a buffer to hold the characters
|
||||||
|
char buffer[buf_len];
|
||||||
|
|
||||||
|
va_list args;
|
||||||
|
va_start(args, str);
|
||||||
|
|
||||||
|
int chars_written = vsniprintf(buffer, buf_len, str, args);
|
||||||
|
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
if (chars_written < 0) {
|
||||||
|
ESP_LOGE(TAG, "Encoding error in vsnprintf");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((size_t)chars_written >= buf_len) {
|
||||||
|
ESP_LOGW(TAG, "Buffer overflow: %d characters needed, but only %d available", chars_written + 1, buf_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
lcd_set_cursor(lcd, col, row);
|
||||||
|
lcd_print(lcd, buffer);
|
||||||
|
|
||||||
|
} // lcd_print_number()
|
||||||
|
|
||||||
|
|
||||||
|
// Private functions: derived from the esp32 i2c_master driver
|
||||||
|
|
||||||
|
|
||||||
|
static void lcd_send(i2c_lcd_pcf8574_handle_t* lcd, uint8_t value, bool is_data) {
|
||||||
|
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
lcd_write_nibble(lcd, (value >> 4 & 0x0F), is_data, cmd);
|
||||||
|
lcd_write_nibble(lcd, (value & 0x0F), is_data, cmd);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
esp_err_t ret = i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
|
||||||
|
if (ret != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "Failed to send data to LCD: %s", esp_err_to_name(ret));
|
||||||
|
}
|
||||||
|
} // lcd_send()
|
||||||
|
|
||||||
|
// Write a nibble / half byte with ACK
|
||||||
|
static void lcd_write_nibble(i2c_lcd_pcf8574_handle_t* lcd, uint8_t half_byte, bool is_data, i2c_cmd_handle_t cmd) {
|
||||||
|
|
||||||
|
// Map the data to the given pin connections
|
||||||
|
uint8_t data = is_data ? lcd->rs_mask : 0;
|
||||||
|
|
||||||
|
// Don't use rw_mask here
|
||||||
|
if (lcd->backlight > 0) {
|
||||||
|
data |= lcd->backlight_mask;
|
||||||
|
}
|
||||||
|
// Allow arbitrary pin configuration
|
||||||
|
if (half_byte & 0x01) data |= lcd->data_mask[0];
|
||||||
|
if (half_byte & 0x02) data |= lcd->data_mask[1];
|
||||||
|
if (half_byte & 0x04) data |= lcd->data_mask[2];
|
||||||
|
if (half_byte & 0x08) data |= lcd->data_mask[3];
|
||||||
|
|
||||||
|
i2c_master_write_byte(cmd, data | lcd->enable_mask, true);
|
||||||
|
i2c_master_write_byte(cmd, data, true);
|
||||||
|
} // lcd_write_nibble()
|
||||||
|
|
||||||
|
// Private function to change the PCF8574 pins to the given value.
|
||||||
|
static void lcd_write_i2c(i2c_lcd_pcf8574_handle_t* lcd, uint8_t data, bool is_data, bool enable) {
|
||||||
|
if (is_data) {
|
||||||
|
data |= lcd->rs_mask;
|
||||||
|
}
|
||||||
|
if (enable) {
|
||||||
|
data |= lcd->enable_mask;
|
||||||
|
}
|
||||||
|
if (lcd->backlight > 0) {
|
||||||
|
data |= lcd->backlight_mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, (lcd->i2c_addr << 1) | I2C_MASTER_WRITE, true);
|
||||||
|
i2c_master_write_byte(cmd, data, true);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
esp_err_t ret = i2c_master_cmd_begin(lcd->i2c_port, cmd, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
|
||||||
|
if (ret != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "Failed to write to LCD: %s", esp_err_to_name(ret));
|
||||||
|
}
|
||||||
|
} // lcd_write_i2c()
|
||||||
112
main/drivers/i2c_lcd_pcf8574.h
Normal file
112
main/drivers/i2c_lcd_pcf8574.h
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
/// \file i2c_lcd_pcf8574.h
|
||||||
|
/// \brief Liquid Crystal display driver with PCF8574 adapter for esp-idf
|
||||||
|
///
|
||||||
|
/// \author Femi Olugbon, https://iamflinks.github.io
|
||||||
|
/// \copyright Copyright (c) 2024 by Femi Olugbon
|
||||||
|
///
|
||||||
|
/// The library work is lincensed under a BSD style license.
|
||||||
|
///
|
||||||
|
/// \details
|
||||||
|
/// This library can drive a LCD based on the Hitachi's HD44790 display chip that is wired through a PCF8574 I2C converter. It uses the esp-idf i2c_driver component for communication. The library was adapted from the LiquidCrystal_PCF8574 (Mathias Hertel) and LiquidCrystal_I2C Arduino libraries.
|
||||||
|
///
|
||||||
|
///
|
||||||
|
/// ChangeLog:
|
||||||
|
/// ===========
|
||||||
|
/// * 07/22/2024 --> Created
|
||||||
|
/// * 07/23/2024 --> Added number printing functionality
|
||||||
|
///
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef I2C_LCD_PCF8574_H
|
||||||
|
#define I2C_LCD_PCF8574_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "esp_err.h"
|
||||||
|
#include "driver/i2c.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LCD_MAX_ROWS 4
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t i2c_addr;
|
||||||
|
uint8_t backlight;
|
||||||
|
uint8_t cols;
|
||||||
|
uint8_t lines;
|
||||||
|
uint8_t entrymode;
|
||||||
|
uint8_t displaycontrol;
|
||||||
|
uint8_t row_offsets[LCD_MAX_ROWS];
|
||||||
|
uint8_t rs_mask;
|
||||||
|
uint8_t rw_mask;
|
||||||
|
uint8_t enable_mask;
|
||||||
|
uint8_t backlight_mask;
|
||||||
|
uint8_t data_mask[4];
|
||||||
|
i2c_port_t i2c_port;
|
||||||
|
} i2c_lcd_pcf8574_handle_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Initialize the LCD
|
||||||
|
void lcd_init(i2c_lcd_pcf8574_handle_t* lcd, uint8_t i2c_addr, i2c_port_t i2c_port);
|
||||||
|
|
||||||
|
// Begin using the LCD
|
||||||
|
void lcd_begin(i2c_lcd_pcf8574_handle_t* lcd, uint8_t cols, uint8_t rows);
|
||||||
|
|
||||||
|
// Clear the LCD
|
||||||
|
void lcd_clear(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Move cursor to home position
|
||||||
|
void lcd_home(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Set cursor position
|
||||||
|
void lcd_set_cursor(i2c_lcd_pcf8574_handle_t* lcd, uint8_t col, uint8_t row);
|
||||||
|
|
||||||
|
// Turn the display on/off
|
||||||
|
void lcd_no_display(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_display(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Turn the cursor on/off
|
||||||
|
void lcd_cursor(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_no_cursor(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Turn blinking cursor on/off
|
||||||
|
void lcd_blink(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_no_blink(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Scroll the display
|
||||||
|
void lcd_scroll_display_left(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_scroll_display_right(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Set the direction for text that flows automatically
|
||||||
|
void lcd_left_to_right(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_right_to_left(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Turn on/off autoscroll
|
||||||
|
void lcd_autoscroll(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
void lcd_no_autoscroll(i2c_lcd_pcf8574_handle_t* lcd);
|
||||||
|
|
||||||
|
// Set backlight brightness
|
||||||
|
void lcd_set_backlight(i2c_lcd_pcf8574_handle_t* lcd, uint8_t brightness);
|
||||||
|
|
||||||
|
// Create a custom character
|
||||||
|
void lcd_create_char(i2c_lcd_pcf8574_handle_t* lcd, uint8_t location, uint8_t charmap[]);
|
||||||
|
|
||||||
|
// Write a character to the LCD
|
||||||
|
void lcd_write(i2c_lcd_pcf8574_handle_t* lcd, uint8_t value);
|
||||||
|
|
||||||
|
// Print a string to the LCD
|
||||||
|
void lcd_print(i2c_lcd_pcf8574_handle_t* lcd, const char* str);
|
||||||
|
|
||||||
|
void lcd_print_number(i2c_lcd_pcf8574_handle_t* lcd, uint8_t col, uint8_t row, uint8_t buf_len, const char *str, ...);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // C++ extern
|
||||||
|
|
||||||
|
#endif // I2C_LCD_PCF8574_H
|
||||||
76
sdkconfig
76
sdkconfig
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file. DO NOT EDIT.
|
# Automatically generated file. DO NOT EDIT.
|
||||||
# Espressif IoT Development Framework (ESP-IDF) 5.2.2 Project Configuration
|
# Espressif IoT Development Framework (ESP-IDF) 5.2.5 Project Configuration
|
||||||
#
|
#
|
||||||
CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
|
CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
|
||||||
CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
|
CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
|
||||||
@ -188,6 +188,7 @@ CONFIG_SOC_RTCIO_PIN_COUNT=22
|
|||||||
CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
|
CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
|
||||||
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
||||||
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
||||||
|
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
||||||
CONFIG_SOC_SDM_GROUPS=y
|
CONFIG_SOC_SDM_GROUPS=y
|
||||||
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
||||||
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
||||||
@ -224,6 +225,8 @@ CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54
|
|||||||
CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
|
CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
|
||||||
CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y
|
CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y
|
||||||
CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4
|
CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4
|
||||||
|
CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
|
||||||
|
CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
|
||||||
CONFIG_SOC_TOUCH_VERSION_2=y
|
CONFIG_SOC_TOUCH_VERSION_2=y
|
||||||
CONFIG_SOC_TOUCH_SENSOR_NUM=15
|
CONFIG_SOC_TOUCH_SENSOR_NUM=15
|
||||||
CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3
|
CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3
|
||||||
@ -542,6 +545,8 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
|
|||||||
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
|
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
|
||||||
CONFIG_COMPILER_RT_LIB_GCCLIB=y
|
CONFIG_COMPILER_RT_LIB_GCCLIB=y
|
||||||
CONFIG_COMPILER_RT_LIB_NAME="gcc"
|
CONFIG_COMPILER_RT_LIB_NAME="gcc"
|
||||||
|
# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set
|
||||||
|
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
|
||||||
# end of Compiler options
|
# end of Compiler options
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -576,6 +581,7 @@ CONFIG_BT_ALARM_MAX_NUM=50
|
|||||||
# Legacy ADC Configuration
|
# Legacy ADC Configuration
|
||||||
#
|
#
|
||||||
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Legacy ADC Calibration Configuration
|
# Legacy ADC Calibration Configuration
|
||||||
@ -604,6 +610,7 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y
|
|||||||
# Temperature sensor Configuration
|
# Temperature sensor Configuration
|
||||||
#
|
#
|
||||||
# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
|
# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
|
||||||
# end of Temperature sensor Configuration
|
# end of Temperature sensor Configuration
|
||||||
|
|
||||||
@ -624,6 +631,7 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y
|
|||||||
#
|
#
|
||||||
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
|
# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
|
||||||
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
|
# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
|
||||||
# end of Sigma Delta Modulator Configuration
|
# end of Sigma Delta Modulator Configuration
|
||||||
|
|
||||||
@ -634,6 +642,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
|
|||||||
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
|
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
|
||||||
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
|
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
|
||||||
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
|
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
|
||||||
# end of GPTimer Configuration
|
# end of GPTimer Configuration
|
||||||
|
|
||||||
@ -643,6 +652,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
|
|||||||
# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
|
# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
|
||||||
# CONFIG_PCNT_ISR_IRAM_SAFE is not set
|
# CONFIG_PCNT_ISR_IRAM_SAFE is not set
|
||||||
# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
|
# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
|
||||||
# end of PCNT Configuration
|
# end of PCNT Configuration
|
||||||
|
|
||||||
@ -652,6 +662,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
|
|||||||
# CONFIG_RMT_ISR_IRAM_SAFE is not set
|
# CONFIG_RMT_ISR_IRAM_SAFE is not set
|
||||||
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
|
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
|
||||||
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
|
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
|
||||||
# end of RMT Configuration
|
# end of RMT Configuration
|
||||||
|
|
||||||
@ -662,6 +673,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
|
|||||||
# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
|
# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
|
||||||
# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
|
# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
|
||||||
|
# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# end of MCPWM Configuration
|
# end of MCPWM Configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -669,6 +681,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
|
|||||||
#
|
#
|
||||||
# CONFIG_I2S_ISR_IRAM_SAFE is not set
|
# CONFIG_I2S_ISR_IRAM_SAFE is not set
|
||||||
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
|
# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
|
||||||
|
# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set
|
||||||
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
|
# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
|
||||||
# end of I2S Configuration
|
# end of I2S Configuration
|
||||||
|
|
||||||
@ -722,6 +735,7 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
|
|||||||
# Wireless Coexistence
|
# Wireless Coexistence
|
||||||
#
|
#
|
||||||
# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
|
# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
|
||||||
|
# CONFIG_ESP_COEX_GPIO_DEBUG is not set
|
||||||
# end of Wireless Coexistence
|
# end of Wireless Coexistence
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -759,6 +773,13 @@ CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y
|
|||||||
CONFIG_ESP_GDBSTUB_MAX_TASKS=32
|
CONFIG_ESP_GDBSTUB_MAX_TASKS=32
|
||||||
# end of GDB Stub
|
# end of GDB Stub
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP HID
|
||||||
|
#
|
||||||
|
CONFIG_ESPHID_TASK_SIZE_BT=2048
|
||||||
|
CONFIG_ESPHID_TASK_SIZE_BLE=4096
|
||||||
|
# end of ESP HID
|
||||||
|
|
||||||
#
|
#
|
||||||
# ESP HTTP client
|
# ESP HTTP client
|
||||||
#
|
#
|
||||||
@ -810,6 +831,12 @@ CONFIG_ESP_REV_MIN_FULL=0
|
|||||||
#
|
#
|
||||||
CONFIG_ESP32S3_REV_MAX_FULL=99
|
CONFIG_ESP32S3_REV_MAX_FULL=99
|
||||||
CONFIG_ESP_REV_MAX_FULL=99
|
CONFIG_ESP_REV_MAX_FULL=99
|
||||||
|
CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0
|
||||||
|
CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199
|
||||||
|
|
||||||
|
#
|
||||||
|
# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99)
|
||||||
|
#
|
||||||
# end of Chip revision
|
# end of Chip revision
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -900,6 +927,7 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
|
|||||||
# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
|
# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
|
||||||
# CONFIG_ESP_NETIF_L2_TAP is not set
|
# CONFIG_ESP_NETIF_L2_TAP is not set
|
||||||
# CONFIG_ESP_NETIF_BRIDGE_EN is not set
|
# CONFIG_ESP_NETIF_BRIDGE_EN is not set
|
||||||
|
# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set
|
||||||
# end of ESP NETIF Adapter
|
# end of ESP NETIF Adapter
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -928,6 +956,7 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0
|
|||||||
# Power Management
|
# Power Management
|
||||||
#
|
#
|
||||||
# CONFIG_PM_ENABLE is not set
|
# CONFIG_PM_ENABLE is not set
|
||||||
|
# CONFIG_PM_SLP_IRAM_OPT is not set
|
||||||
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
|
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
|
||||||
CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y
|
CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y
|
||||||
# end of Power Management
|
# end of Power Management
|
||||||
@ -1114,6 +1143,9 @@ CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
|
|||||||
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
|
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
|
||||||
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
|
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
|
||||||
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
||||||
|
CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
|
||||||
|
CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
|
||||||
|
CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
|
||||||
# CONFIG_ESP_WIFI_FTM_ENABLE is not set
|
# CONFIG_ESP_WIFI_FTM_ENABLE is not set
|
||||||
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
|
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
|
||||||
# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
|
# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
|
||||||
@ -1211,6 +1243,7 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
|
|||||||
# CONFIG_FREERTOS_USE_TICK_HOOK is not set
|
# CONFIG_FREERTOS_USE_TICK_HOOK is not set
|
||||||
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
|
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
|
||||||
# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
|
# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
|
||||||
|
CONFIG_FREERTOS_USE_TIMERS=y
|
||||||
CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
|
CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
|
||||||
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
|
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
|
||||||
@ -1405,6 +1438,9 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
|||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||||
|
CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5
|
||||||
|
CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3
|
||||||
|
CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10
|
||||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||||
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||||
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||||
@ -1435,8 +1471,10 @@ CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
|
|||||||
#
|
#
|
||||||
# DNS
|
# DNS
|
||||||
#
|
#
|
||||||
|
CONFIG_LWIP_DNS_MAX_HOST_IP=1
|
||||||
CONFIG_LWIP_DNS_MAX_SERVERS=3
|
CONFIG_LWIP_DNS_MAX_SERVERS=3
|
||||||
# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
|
# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
|
||||||
|
# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
|
||||||
# end of DNS
|
# end of DNS
|
||||||
|
|
||||||
CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
|
CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
|
||||||
@ -1460,6 +1498,8 @@ CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
|
|||||||
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
||||||
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
|
||||||
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
|
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
|
||||||
|
CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y
|
||||||
|
# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set
|
||||||
CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y
|
CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y
|
||||||
# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set
|
# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set
|
||||||
# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
|
# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
|
||||||
@ -1521,6 +1561,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y
|
|||||||
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
||||||
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
|
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
|
||||||
CONFIG_MBEDTLS_SHA512_C=y
|
CONFIG_MBEDTLS_SHA512_C=y
|
||||||
|
# CONFIG_MBEDTLS_SHA3_C is not set
|
||||||
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
||||||
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
||||||
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
||||||
@ -1597,6 +1638,7 @@ CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y
|
|||||||
# CONFIG_MBEDTLS_HKDF_C is not set
|
# CONFIG_MBEDTLS_HKDF_C is not set
|
||||||
# CONFIG_MBEDTLS_THREADING_C is not set
|
# CONFIG_MBEDTLS_THREADING_C is not set
|
||||||
CONFIG_MBEDTLS_ERROR_STRINGS=y
|
CONFIG_MBEDTLS_ERROR_STRINGS=y
|
||||||
|
CONFIG_MBEDTLS_FS_IO=y
|
||||||
# end of mbedTLS
|
# end of mbedTLS
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1645,25 +1687,10 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
|
|||||||
# CONFIG_OPENTHREAD_ENABLED is not set
|
# CONFIG_OPENTHREAD_ENABLED is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Thread Operational Dataset
|
# OpenThread Spinel
|
||||||
#
|
#
|
||||||
CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP"
|
|
||||||
CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64"
|
|
||||||
CONFIG_OPENTHREAD_NETWORK_CHANNEL=15
|
|
||||||
CONFIG_OPENTHREAD_NETWORK_PANID=0x1234
|
|
||||||
CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe"
|
|
||||||
CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff"
|
|
||||||
CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53"
|
|
||||||
# end of Thread Operational Dataset
|
|
||||||
|
|
||||||
CONFIG_OPENTHREAD_XTAL_ACCURACY=130
|
|
||||||
# CONFIG_OPENTHREAD_SPINEL_ONLY is not set
|
# CONFIG_OPENTHREAD_SPINEL_ONLY is not set
|
||||||
CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE=y
|
# end of OpenThread Spinel
|
||||||
|
|
||||||
#
|
|
||||||
# Thread Address Query Config
|
|
||||||
#
|
|
||||||
# end of Thread Address Query Config
|
|
||||||
# end of OpenThread
|
# end of OpenThread
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1721,6 +1748,7 @@ CONFIG_SPI_FLASH_HPM_DC_AUTO=y
|
|||||||
# CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set
|
# CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set
|
||||||
CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y
|
CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y
|
||||||
# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
|
# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
|
||||||
|
# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
|
||||||
# end of Optional and Experimental Features (READ DOCS FIRST)
|
# end of Optional and Experimental Features (READ DOCS FIRST)
|
||||||
# end of Main Flash configuration
|
# end of Main Flash configuration
|
||||||
|
|
||||||
@ -1841,13 +1869,20 @@ CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y
|
|||||||
# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set
|
# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Root Hub configuration
|
# Hub Driver Configuration
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Root Port configuration
|
||||||
#
|
#
|
||||||
CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250
|
CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250
|
||||||
CONFIG_USB_HOST_RESET_HOLD_MS=30
|
CONFIG_USB_HOST_RESET_HOLD_MS=30
|
||||||
CONFIG_USB_HOST_RESET_RECOVERY_MS=30
|
CONFIG_USB_HOST_RESET_RECOVERY_MS=30
|
||||||
CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10
|
CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10
|
||||||
# end of Root Hub configuration
|
# end of Root Port configuration
|
||||||
|
|
||||||
|
# CONFIG_USB_HOST_HUBS_SUPPORTED is not set
|
||||||
|
# end of Hub Driver Configuration
|
||||||
|
|
||||||
CONFIG_USB_OTG_SUPPORTED=y
|
CONFIG_USB_OTG_SUPPORTED=y
|
||||||
# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set
|
# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set
|
||||||
@ -1884,7 +1919,6 @@ CONFIG_WL_SECTOR_SIZE=4096
|
|||||||
#
|
#
|
||||||
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
|
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
|
||||||
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
||||||
# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set
|
|
||||||
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
|
CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
|
||||||
# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
|
# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
|
||||||
# end of Wi-Fi Provisioning Manager
|
# end of Wi-Fi Provisioning Manager
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user