b49c9ab0c6
完整实现了以下模块: - 系统数据总线(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构建系统
21 lines
704 B
C
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
|