在board_config.h文件中添加#define SOFTWARE_IIC选项用以选择使用软件IIC还是硬件IIC,如果注释掉该行则为硬件IIC方式。并完整实现软件IIC功能。

This commit is contained in:
2024-12-29 22:07:49 +08:00
parent 9b9f14f97a
commit 0ac221ce6f
10 changed files with 187 additions and 89 deletions

View File

@@ -5,6 +5,10 @@
#ifndef BOARD_CONFIG_H
#define BOARD_CONFIG_H
#define SOFTWARE_IIC
// #define DEBUG_VERBOES
/******************************************************************************/
#define I2C_SPEED 20000
@@ -18,4 +22,15 @@
/******************************************************************************/
#define RS485_RCU RCU_USART0
#define RS485_GPIO_RCU RCU_GPIOA
#define RS485_GPIO_PORT GPIOA
#define RS485_TX_PIN GPIO_PIN_2
#define RS485_RX_PIN GPIO_PIN_3
#define RS485_PHY USART0
#define RS485_BAUDRATE 115200U
#define RS485_EN_PIN GPIO_PIN_1
/******************************************************************************/
#endif //BOARD_CONFIG_H

View File

@@ -13,8 +13,12 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "board_config.h"
#include "soft_i2c.h"
#include "i2c.h"
/***************************************************************************/
#define LDC1612_ADDR (0x2B << 1)
/*Register Rddr*/

View File

@@ -22,6 +22,12 @@
/******************************************************************************/
#define SOFT_I2C_OK 1
#define SOFT_I2C_FAIL 0
#define SOFT_I2C_END 1
/******************************************************************************/
void soft_i2c_delay(void);
void soft_i2c_config(void);
@@ -40,4 +46,8 @@ void soft_i2c_send_byte(uint8_t data);
uint8_t soft_i2c_receive_byte(uint8_t ack);
uint8_t soft_i2c_write_16bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t data[2]);
uint8_t soft_i2c_read_16bits(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data);
#endif //SOFT_I2C_H

View File

@@ -13,7 +13,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "board_config.h"
#ifdef SOFTWARE_IIC
#include "soft_i2c.h"
#else
#include "i2c.h"
#endif
/******************************************************************************/