当前位置: 首页 > wzjs >正文

免费网站模板 带后台怎么学php网站开发

免费网站模板 带后台,怎么学php网站开发,网络管理系统的层次结构,wordpress 资讯类主题可以的。ESP32-S3 的 IC 总线本身就是多主从、多设备共享的,只要两块设备的从机地址不同,并且都工作在同样的电平和速率下,就可以同时挂在一条 SDA/SCL 上。下面给出一个简单示例,展示如何在同一个 I2C 端口(例如 I2C_…

可以的。ESP32-S3 的 I²C 总线本身就是多主从、多设备共享的,只要两块设备的从机地址不同,并且都工作在同样的电平和速率下,就可以同时挂在一条 SDA/SCL 上。下面给出一个简单示例,展示如何在同一个 I2C 端口(例如 I2C_NUM_0)上,先扫描确认 LCD 和 IP5356M 的从机地址,然后初始化并分别与它们通信。

#include "driver/i2c.h"
#include "esp_log.h"
#include "esp_err.h"static const char *TAG = "i2c_multi";// I2C 引脚和参数
#define I2C_MASTER_SCL_IO           22    // SCL 引脚
#define I2C_MASTER_SDA_IO           21    // SDA 引脚
#define I2C_MASTER_NUM              I2C_NUM_0
#define I2C_MASTER_FREQ_HZ          100000
#define I2C_MASTER_TX_BUF_DISABLE   0
#define I2C_MASTER_RX_BUF_DISABLE   0
#define I2C_MASTER_TIMEOUT_MS       1000// 假设 LCD 的 I2C 地址是 0x3C,IP5356M 的地址是 0x75
#define LCD_I2C_ADDR     0x3C
#define IP5356M_ADDR     0x75// 初始化 I2C 总线
static esp_err_t i2c_master_init(void)
{i2c_config_t conf = {.mode = I2C_MODE_MASTER,.sda_io_num = I2C_MASTER_SDA_IO,.scl_io_num = I2C_MASTER_SCL_IO,.sda_pullup_en = GPIO_PULLUP_ENABLE,.scl_pullup_en = GPIO_PULLUP_ENABLE,.master.clk_speed = I2C_MASTER_FREQ_HZ,};ESP_RETURN_ON_ERROR(i2c_param_config(I2C_MASTER_NUM, &conf), TAG, "param_config");ESP_RETURN_ON_ERROR(i2c_driver_install(I2C_MASTER_NUM, conf.mode,I2C_MASTER_RX_BUF_DISABLE,I2C_MASTER_TX_BUF_DISABLE, 0),TAG, "driver_install");return ESP_OK;
}// 扫描 I2C 总线上所有设备
static void i2c_scan_bus(void)
{ESP_LOGI(TAG, "--- I2C 总线扫描开始 ---");for (uint8_t addr = 1; addr < 0x78; addr++) {i2c_cmd_handle_t cmd = i2c_cmd_link_create();i2c_master_start(cmd);i2c_master_write_byte(cmd, (addr << 1) | I2C_MASTER_WRITE, true);i2c_master_stop(cmd);esp_err_t ret = i2c_master_cmd_begin(I2C_MASTER_NUM, cmd,pdMS_TO_TICKS(I2C_MASTER_TIMEOUT_MS));i2c_cmd_link_delete(cmd);if (ret == ESP_OK) {ESP_LOGI(TAG, "找到设备,地址=0x%02X", addr);}}ESP_LOGI(TAG, "--- 扫描结束 ---");
}// 向 IP5356M 读取一个寄存器示例
static esp_err_t ip5356m_read_reg(uint8_t reg, uint8_t *out_data)
{i2c_cmd_handle_t cmd = i2c_cmd_link_create();// 写寄存器地址i2c_master_start(cmd);i2c_master_write_byte(cmd, (IP5356M_ADDR << 1) | I2C_MASTER_WRITE, true);i2c_master_write_byte(cmd, reg, true);// 读数据i2c_master_start(cmd);i2c_master_write_byte(cmd, (IP5356M_ADDR << 1) | I2C_MASTER_READ, true);i2c_master_read_byte(cmd, out_data, I2C_MASTER_NACK);i2c_master_stop(cmd);esp_err_t ret = i2c_master_cmd_begin(I2C_MASTER_NUM, cmd,pdMS_TO_TICKS(I2C_MASTER_TIMEOUT_MS));i2c_cmd_link_delete(cmd);return ret;
}// 向 LCD 发送命令/数据示例(以 SSD1306 为例)
static esp_err_t lcd_send_cmd(uint8_t cmd)
{i2c_cmd_handle_t handle = i2c_cmd_link_create();// 控制字节 0x00 表示写命令i2c_master_start(handle);i2c_master_write_byte(handle, (LCD_I2C_ADDR << 1) | I2C_MASTER_WRITE, true);i2c_master_write_byte(handle, 0x00, true);i2c_master_write_byte(handle, cmd, true);i2c_master_stop(handle);esp_err_t ret = i2c_master_cmd_begin(I2C_MASTER_NUM, handle,pdMS_TO_TICKS(I2C_MASTER_TIMEOUT_MS));i2c_cmd_link_delete(handle);return ret;
}void app_main(void)
{ESP_ERROR_CHECK(i2c_master_init());i2c_scan_bus();// 读取 IP5356M 的某个状态寄存器uint8_t batt_volt;if (ip5356m_read_reg(0x78, &batt_volt) == ESP_OK) {ESP_LOGI(TAG, "IP5356M 电池电压寄存器(0x78)=0x%02X", batt_volt);} else {ESP_LOGW(TAG, "读取 IP5356M 失败");}// 给 LCD 发送一个“显示开”命令示例if (lcd_send_cmd(0xAF) == ESP_OK) {ESP_LOGI(TAG, "LCD 命令 0xAF(显示开) 已发送");} else {ESP_LOGW(TAG, "向 LCD 发送命令失败");}// 后续可继续操作 IP5356M 和 LCD……
}

要点总结:

  1. 唯一地址:确认 LCD(如 SSD1306 通常是 0x3C 或 0x3D)和 IP5356M(常见 0x75)地址不冲突;否则需更改其中一个设备的地址或使用多个 I2C 总线。

  2. 拉拔电阻:I²C 总线需要外部 4.7kΩ 上拉到 3.3V,ESP32-S3 板上常自带,也要保证两端有。

  3. 电平兼容:两块外设都工作在 3.3V,若有 5V 设备需电平转换。

  4. 总线速率:示例使用 100kHz,若有高速需求可设 400kHz,但要确认器件支持。

  5. 驱动复用:一条总线只需调用一次 i2c_driver_install,后面通过不同地址读写即可。

只要满足这些要求,就可以放心地在 ESP32-S3 的同一 I²C 总线上同时挂载 LCD 显示屏和 IP5356M。


文章转载自:

http://Prbp3IDz.jbmbj.cn
http://LDArrWLa.jbmbj.cn
http://uUNxMrUs.jbmbj.cn
http://6wwfKpi3.jbmbj.cn
http://ELXSrlie.jbmbj.cn
http://2qPYupXV.jbmbj.cn
http://Ll4hL6NT.jbmbj.cn
http://1RbXlbN0.jbmbj.cn
http://57A7xaDt.jbmbj.cn
http://c92sW0x9.jbmbj.cn
http://ldJAq2uE.jbmbj.cn
http://Vy7J9UOj.jbmbj.cn
http://MkEyviOT.jbmbj.cn
http://Nfm2aKUQ.jbmbj.cn
http://O83MNZgC.jbmbj.cn
http://rg4jXn18.jbmbj.cn
http://dhN6ptZl.jbmbj.cn
http://9LNfyAHg.jbmbj.cn
http://Byg0Sn2d.jbmbj.cn
http://8arebjoJ.jbmbj.cn
http://X9SKxFzC.jbmbj.cn
http://2QkL9s8c.jbmbj.cn
http://xwqUxc93.jbmbj.cn
http://wJbq6sto.jbmbj.cn
http://RIrhkszZ.jbmbj.cn
http://dhVZcS6D.jbmbj.cn
http://682jqdEb.jbmbj.cn
http://WnBeqPiA.jbmbj.cn
http://ErYwiOra.jbmbj.cn
http://87AtSJEH.jbmbj.cn
http://www.dtcms.com/wzjs/706994.html

相关文章:

  • 营销网站建设软件下载wordpress 按字数 广告
  • 珠海网站建设贵公司网站备案取消前置审批
  • 下城区住房和城市建设局网站做网站销售好不好
  • 自己做的网站怎么让别人看到广州自助网站搭建制作公司
  • 西安网站开发外包广州建站模板
  • 新闻自动采集网站源码软件下载网站如何履行安全管理义务确保提供的软件不含恶意程序
  • 模板网站的缺陷郑州企业网站排名优化
  • 哪个网站可以做竖屏网站建设步骤 文档
  • 网站开发工程师专业wordpress 站群
  • 一个小型购物网站开发珠海微网站建设
  • 负面信息网站网页设计与制作软件
  • 连锁酒店的网站建设html网站建设流程图
  • 做网站可以找设计公司吗网络营销十大经典案例
  • 营销推广型网站公司下沙网站建设
  • 最专业网站建设公司php做教育网站
  • 云南网站推广做网站客户
  • 长春建设厅网站首页google adsense
  • 企业网站的公司和产品信息的介绍与网络营销关系广州网页制作平台
  • 备案域名指向一个网站软件设计工具有哪些
  • 昆山网站优化建设福田祥菱q双排小货车报价及图片
  • 网站制作的评价标准网站建设公司需要具备
  • 网站的管理页面宝塔做的网站网页打不开
  • 网站安装模板移动应用开发是做什么的
  • 手机建站平台微点松江网站建设平台
  • 专业的家居行业网站模板网站 维护方案
  • 本地网站搭建视频教程房屋装修设计公司
  • 东莞公司网站建设教程电子商务网站计划书
  • 网站开发外包售后维护合同范本刷赞网站推广软件
  • 代做寄生虫网站网站首页引导页 模版
  • 中华门窗网怎么做网站广州微网站建设