Files
StepMotorCtrl/drv/i2c/i2c_driver.h
T
hm b49c9ab0c6 Initial commit: PY32MD530H28U7TR步进电机控制器项目
完整实现了以下模块:
- 系统数据总线(sys_data_bus)模块间通信
- UART/USART/LPUART驱动 + RS485半双工
- I2C驱动(AS5600角度传感器 + AT24C02 EEPROM)
- Modbus RTU从站协议
- 步进电机微步进控制(正弦/余弦换相+S曲线加减速)
- 到位开关驱动(DI_MIN/DI_MAX)
- PGA+ADC电流检测
- 系统监控任务(内存/串口/传感器/任务状态)
- LED/Key外设驱动
- 基于CMake + arm-none-eabi-gcc构建系统
2026-05-11 19:55:43 +08:00

21 lines
704 B
C

#ifndef I2C_DRIVER_H__
#define I2C_DRIVER_H__
#include "common_types.h"
#include <stdint.h>
typedef enum {
I2C_SPEED_STANDARD = 100000,
I2C_SPEED_FAST = 400000,
} i2c_speed_t;
ret_code_t i2c_init(uint32_t speed);
ret_code_t i2c_deinit(void);
ret_code_t i2c_master_write(uint8_t dev_addr, const uint8_t *data, uint32_t len);
ret_code_t i2c_master_read(uint8_t dev_addr, uint8_t *data, uint32_t len);
ret_code_t i2c_mem_write(uint8_t dev_addr, uint16_t mem_addr, uint8_t mem_addr_size, const uint8_t *data, uint32_t len);
ret_code_t i2c_mem_read(uint8_t dev_addr, uint16_t mem_addr, uint8_t mem_addr_size, uint8_t *data, uint32_t len);
ret_code_t i2c_check_device(uint8_t dev_addr);
#endif