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

用ESP32IDF 新版本5.3.0读写16口输入或者输出PCF8575程序编写

PCF8575可以实现16口输入或者输出, 而且升级了esp32 IDF的新版本5.3.0,好多函数都和老版本的4.4.7不一样了

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "driver/i2c_master.h"
#include "driver/gpio.h"#define I2C_MASTER_SCL_IO 15
#define I2C_MASTER_SDA_IO 16
void app_main(void)
{i2c_master_bus_config_t i2c_mst_config = {.clk_source = I2C_CLK_SRC_DEFAULT,.i2c_port = -1,.scl_io_num = I2C_MASTER_SCL_IO,.sda_io_num = I2C_MASTER_SDA_IO,.glitch_ignore_cnt = 7,.flags.enable_internal_pullup = true,};i2c_master_bus_handle_t bus_handle;ESP_ERROR_CHECK(i2c_new_master_bus(&i2c_mst_config, &bus_handle));i2c_device_config_t dev_cfg = {.dev_addr_length = I2C_ADDR_BIT_LEN_7,.device_address = 0x20, // 7位是0X20 实际是0100 000+读写位,可以理解是0x40和0x41.scl_speed_hz = 400000,};i2c_master_dev_handle_t dev_handle;ESP_ERROR_CHECK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));while (1){//输出检测//uint8_t output_data[2] = {0x01,0x00}; // 设置P00为高电平,其它低电平uint8_t output_data[2] = {0xFF,0x00}; // 设置低8位为高电平,高8位为低电平i2c_master_transmit(dev_handle, output_data, 2, 100);//输入检测//说明书上说:在从PCF8575读取之前,所有需要的输入端口应设置为逻辑1。uint8_t input_data[2];i2c_master_receive(dev_handle, input_data, 2, 100);printf("read data: %02X %02X \n", input_data[0], input_data[1]);vTaskDelay(1000 / portTICK_PERIOD_MS);}
}

不记录一下测试的情况,过几天又得忘记,哈哈

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux操作系统安装
  • Linux 进程间通信之管道
  • Langchain pandas agent - Azure OpenAI account
  • 内部排序(插入、交换、选择)
  • Unidbg使用指南
  • 基于MyBatis-plus的SpringBoot开发
  • go,gin封装gorm使用,增删改查
  • 【Web自动化测试】
  • 大话C语言:第40篇 结构体指针​
  • 【学习笔记】A2X通信的协议(十一)- 通过PC5的直接C2通信
  • 车辆横向控制的参考路径估计
  • 网络安全入门必备读书清单!(非常详细)零基础入门到精通,收藏这一篇就够了
  • 物理网卡MAC修改器v3.0-直接修改网卡内部硬件MAC地址,重装系统不变!
  • 单元训练10:定时器实现秒表功能-数组方式
  • 打卡学习Python爬虫第一天|抓取百度首页html代码
  • [译]Python中的类属性与实例属性的区别
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS 专业技巧
  • Flex布局到底解决了什么问题
  • Java基本数据类型之Number
  • jQuery(一)
  • js 实现textarea输入字数提示
  • LintCode 31. partitionArray 数组划分
  • vue学习系列(二)vue-cli
  • windows下如何用phpstorm同步测试服务器
  • 阿里云Kubernetes容器服务上体验Knative
  • 代理模式
  • 记一次删除Git记录中的大文件的过程
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 开源地图数据可视化库——mapnik
  • 理清楚Vue的结构
  • 前端攻城师
  • 三栏布局总结
  • 王永庆:技术创新改变教育未来
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我感觉这是史上最牛的防sql注入方法类
  • 一文看透浏览器架构
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #android不同版本废弃api,新api。
  • #HarmonyOS:基础语法
  • #if 1...#endif
  • #NOIP 2014# day.1 T2 联合权值
  • #stm32整理(一)flash读写
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (二)JAVA使用POI操作excel
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战