Files
ldc1612_cmake_vscode/Inc/iic_new.h

46 lines
1.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ...existing code...
/* function declarations */
i2c_result_t i2c_config(void);
i2c_result_t i2c_bus_reset(void);
void i2c_scan(void);
/* generic read/write functions with configurable length */
i2c_result_t i2c_write(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data, uint8_t length);
i2c_result_t i2c_read(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data, uint8_t length);
/* compatibility functions for legacy code */
i2c_result_t i2c_write_16bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t data[2]);
i2c_result_t i2c_read_16bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data);
/* convenience functions for common operations */
i2c_result_t i2c_write_8bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t data);
i2c_result_t i2c_read_8bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data);
i2c_result_t i2c_write_32bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t data[4]);
i2c_result_t i2c_read_32bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data);
#ifdef DEBUG_VERBOSE
const char* i2c_get_status_string(i2c_result_t status);
#endif
// ...existing code...
// 读取显示面板参数 (13字节)
uint8_t display_params[13];
i2c_result_t result = i2c_read_display_params(0x3C, 0x0F, display_params, 13);
// 或者使用通用函数
result = i2c_read(0x3C, 0x0F, display_params, 13);
// 读取单个参数
uint8_t startup_mode;
result = i2c_read_8bits(0x3C, 0x0F, &startup_mode);
// 读取2字节参数如显示界面宽度
uint8_t width_data[2];
result = i2c_read(0x3C, 0x10, width_data, 2);
// 写入多字节配置
uint8_t config_data[5] = {0x01, 0x02, 0x03, 0x04, 0x05};
result = i2c_write(0x3C, 0x20, config_data, 5);