初始提交卡包 USB 工程
纳入固件源码、屏幕组件、nand_xfer 工具和文档。忽略本机构建产物、sdkconfig,以及含本机路径的依赖锁。 Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
idf_component_register(
|
||||
SRCS "i2c_bsp.c"
|
||||
REQUIRES driver
|
||||
INCLUDE_DIRS "./")
|
||||
@@ -0,0 +1,56 @@
|
||||
#include <stdio.h>
|
||||
#include "i2c_bsp.h"
|
||||
|
||||
|
||||
#define TEST_I2C_PORT I2C_NUM_0
|
||||
//#define EXAMPLE_USE_TOUCH //触控屏的实现
|
||||
|
||||
|
||||
#ifndef EXAMPLE_USE_TOUCH
|
||||
|
||||
#define I2C_MASTER_SCL_IO 39
|
||||
#define I2C_MASTER_SDA_IO 40
|
||||
|
||||
void I2C_master_Init(void)
|
||||
{
|
||||
i2c_config_t conf =
|
||||
{
|
||||
.mode = I2C_MODE_MASTER,
|
||||
.sda_io_num = I2C_MASTER_SDA_IO, // 配置 SDA 的 GPIO
|
||||
.sda_pullup_en = GPIO_PULLUP_ENABLE,
|
||||
.scl_io_num = I2C_MASTER_SCL_IO, // 配置 SCL 的 GPIO
|
||||
.scl_pullup_en = GPIO_PULLUP_ENABLE,
|
||||
.master.clk_speed = 300 * 1000, // 为项目选择频率
|
||||
.clk_flags = 0, // 可选项,可以使用 I2C_SCLK_SRC_FLAG_* 标志来选择 I2C 源时钟
|
||||
};
|
||||
ESP_ERROR_CHECK(i2c_param_config(TEST_I2C_PORT, &conf));
|
||||
ESP_ERROR_CHECK(i2c_driver_install(TEST_I2C_PORT, conf.mode,0,0,0));
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t I2C_writr_buff(uint8_t addr,uint8_t reg,uint8_t *buf,uint8_t len)
|
||||
{
|
||||
uint8_t ret;
|
||||
uint8_t *pbuf = (uint8_t*)malloc(len+1);
|
||||
pbuf[0] = reg;
|
||||
for(uint8_t i = 0; i<len; i++)
|
||||
{
|
||||
pbuf[i+1] = buf[i];
|
||||
}
|
||||
ret = i2c_master_write_to_device(TEST_I2C_PORT,addr,pbuf,len+1,1000);
|
||||
free(pbuf);
|
||||
pbuf = NULL;
|
||||
return ret;
|
||||
}
|
||||
uint8_t I2C_read_buff(uint8_t addr,uint8_t reg,uint8_t *buf,uint8_t len)
|
||||
{
|
||||
uint8_t ret;
|
||||
ret = i2c_master_write_read_device(TEST_I2C_PORT,addr,®,1,buf,len,1000);
|
||||
return ret;
|
||||
}
|
||||
uint8_t I2C_master_write_read_device(uint8_t addr,uint8_t *writeBuf,uint8_t writeLen,uint8_t *readBuf,uint8_t readLen)
|
||||
{
|
||||
uint8_t ret;
|
||||
ret = i2c_master_write_read_device(TEST_I2C_PORT,addr,writeBuf,writeLen,readBuf,readLen,1000);
|
||||
return ret;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef I2C_BSP_H
|
||||
#define I2C_BSP_H
|
||||
#include "driver/i2c.h"
|
||||
|
||||
|
||||
void I2C_master_Init(void);
|
||||
uint8_t I2C_writr_buff(uint8_t addr,uint8_t reg,uint8_t *buf,uint8_t len);
|
||||
uint8_t I2C_read_buff(uint8_t addr,uint8_t reg,uint8_t *buf,uint8_t len);
|
||||
uint8_t I2C_master_write_read_device(uint8_t addr,uint8_t *writeBuf,uint8_t writeLen,uint8_t *readBuf,uint8_t readLen);
|
||||
#endif
|
||||
Reference in New Issue
Block a user