mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
commit
bfb5a4e7fa
@ -31,20 +31,20 @@
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
//DigitalInOut sda(p9);
|
||||
#define sda I2C_SIOD_READ()
|
||||
#define sda SOFT_I2C_SIOD_READ()
|
||||
//DigitalOut scl(p10);
|
||||
|
||||
#define LOW 0;
|
||||
#define HIGH 1;
|
||||
|
||||
//#define SCL_HIGH scl = HIGH;
|
||||
#define SCL_HIGH I2C_SIOC_H()
|
||||
#define SCL_HIGH SOFT_I2C_SIOC_H()
|
||||
//#define SCL_LOW scl = LOW;
|
||||
#define SCL_LOW I2C_SIOC_L()
|
||||
#define SCL_LOW SOFT_I2C_SIOC_L()
|
||||
//#define SDA_HIGH sda.input();
|
||||
#define SDA_HIGH I2C_SIOD_H()
|
||||
#define SDA_HIGH SOFT_I2C_SIOD_H()
|
||||
//#define SDA_LOW sda.output(); sda = LOW;
|
||||
#define SDA_LOW I2C_SIOD_L()
|
||||
#define SDA_LOW SOFT_I2C_SIOD_L()
|
||||
|
||||
int I2CSendByte(int8_t);
|
||||
void I2CReadBytes(int, char *);
|
||||
|
||||
@ -185,19 +185,19 @@
|
||||
#define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET)
|
||||
#define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET)
|
||||
|
||||
#define I2C_PORT GPIOB
|
||||
#define I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define I2C_SIOD_PIN GPIO_PIN_11
|
||||
#define SOFT_I2C_PORT GPIOB
|
||||
#define SOFT_I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define SOFT_I2C_SIOD_PIN GPIO_PIN_11
|
||||
|
||||
#define I2C_SIOC_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOC_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOC_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOC_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOD_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOD_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOD_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_READ() HAL_GPIO_ReadPin(I2C_PORT, I2C_SIOD_PIN)
|
||||
#define I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, bit);
|
||||
#define SOFT_I2C_SIOD_READ() HAL_GPIO_ReadPin (SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN)
|
||||
#define SOFT_I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, bit);
|
||||
|
||||
#define I2C_SPIN_DELAY 16
|
||||
#define SOFT_I2C_SPIN_DELAY 16
|
||||
|
||||
#endif //__OMV_BOARDCONFIG_H__
|
||||
|
||||
@ -185,19 +185,19 @@
|
||||
#define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET)
|
||||
#define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET)
|
||||
|
||||
#define I2C_PORT GPIOB
|
||||
#define I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define I2C_SIOD_PIN GPIO_PIN_11
|
||||
#define SOFT_I2C_PORT GPIOB
|
||||
#define SOFT_I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define SOFT_I2C_SIOD_PIN GPIO_PIN_11
|
||||
|
||||
#define I2C_SIOC_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOC_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOC_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOC_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOD_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOD_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOD_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_READ() HAL_GPIO_ReadPin(I2C_PORT, I2C_SIOD_PIN)
|
||||
#define I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, bit);
|
||||
#define SOFT_I2C_SIOD_READ() HAL_GPIO_ReadPin (SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN)
|
||||
#define SOFT_I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, bit);
|
||||
|
||||
#define I2C_SPIN_DELAY 24
|
||||
#define SOFT_I2C_SPIN_DELAY 24
|
||||
|
||||
#endif //__OMV_BOARDCONFIG_H__
|
||||
|
||||
@ -240,20 +240,20 @@
|
||||
#define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET)
|
||||
#define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET)
|
||||
|
||||
#define I2C_PORT GPIOB
|
||||
#define I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define I2C_SIOD_PIN GPIO_PIN_11
|
||||
#define SOFT_I2C_PORT GPIOB
|
||||
#define SOFT_I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define SOFT_I2C_SIOD_PIN GPIO_PIN_11
|
||||
|
||||
#define I2C_SIOC_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOC_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOC_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOC_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOD_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOD_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOD_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_READ() HAL_GPIO_ReadPin(I2C_PORT, I2C_SIOD_PIN)
|
||||
#define I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, bit);
|
||||
#define SOFT_I2C_SIOD_READ() HAL_GPIO_ReadPin (SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN)
|
||||
#define SOFT_I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, bit);
|
||||
|
||||
#define I2C_SPIN_DELAY 32
|
||||
#define SOFT_I2C_SPIN_DELAY 32
|
||||
|
||||
#define LEPTON_SPI (SPI3)
|
||||
#define LEPTON_SPI_AF (GPIO_AF6_SPI3)
|
||||
|
||||
@ -249,20 +249,20 @@
|
||||
#define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET)
|
||||
#define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET)
|
||||
|
||||
#define I2C_PORT GPIOB
|
||||
#define I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define I2C_SIOD_PIN GPIO_PIN_11
|
||||
#define SOFT_I2C_PORT GPIOB
|
||||
#define SOFT_I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define SOFT_I2C_SIOD_PIN GPIO_PIN_11
|
||||
|
||||
#define I2C_SIOC_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOC_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOC_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOC_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOD_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOD_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOD_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_READ() HAL_GPIO_ReadPin(I2C_PORT, I2C_SIOD_PIN)
|
||||
#define I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, bit);
|
||||
#define SOFT_I2C_SIOD_READ() HAL_GPIO_ReadPin (SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN)
|
||||
#define SOFT_I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, bit);
|
||||
|
||||
#define I2C_SPIN_DELAY 32
|
||||
#define SOFT_I2C_SPIN_DELAY 32
|
||||
|
||||
#define LEPTON_SPI (SPI3)
|
||||
#define LEPTON_SPI_AF (GPIO_AF6_SPI3)
|
||||
|
||||
@ -212,20 +212,20 @@
|
||||
#define DCMI_VSYNC_IRQN EXTI9_5_IRQn
|
||||
#define DCMI_VSYNC_IRQ_LINE (7)
|
||||
|
||||
#define I2C_PORT GPIOB
|
||||
#define I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define I2C_SIOD_PIN GPIO_PIN_11
|
||||
#define SOFT_I2C_PORT GPIOB
|
||||
#define SOFT_I2C_SIOC_PIN GPIO_PIN_10
|
||||
#define SOFT_I2C_SIOD_PIN GPIO_PIN_11
|
||||
|
||||
#define I2C_SIOC_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOC_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOC_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOC_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_H() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define I2C_SIOD_L() HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
#define SOFT_I2C_SIOD_H() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_SET)
|
||||
#define SOFT_I2C_SIOD_L() HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, GPIO_PIN_RESET)
|
||||
|
||||
#define I2C_SIOD_READ() HAL_GPIO_ReadPin(I2C_PORT, I2C_SIOD_PIN)
|
||||
#define I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(I2C_PORT, I2C_SIOD_PIN, bit);
|
||||
#define SOFT_I2C_SIOD_READ() HAL_GPIO_ReadPin (SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN)
|
||||
#define SOFT_I2C_SIOD_WRITE(bit) HAL_GPIO_WritePin(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN, bit);
|
||||
|
||||
#define I2C_SPIN_DELAY 32
|
||||
#define SOFT_I2C_SPIN_DELAY 32
|
||||
|
||||
// Enable additional GPIO banks for DRAM...
|
||||
#define OMV_ENABLE_GPIO_BANK_F
|
||||
|
||||
@ -359,7 +359,7 @@ mp_obj_t py_fir_init(uint n_args, const mp_obj_t *args, mp_map_t *kw_args)
|
||||
|
||||
alpha_ij = xalloc(sizeof(paramsMLX90640));
|
||||
|
||||
MLX90640_I2CFreqSet(I2C_SPIN_DELAY);
|
||||
MLX90640_I2CFreqSet(SOFT_I2C_SPIN_DELAY);
|
||||
MLX90640_I2CInit();
|
||||
|
||||
int error = 0;
|
||||
|
||||
@ -17,16 +17,16 @@
|
||||
|
||||
static void delay(void)
|
||||
{
|
||||
for(volatile int i=0; i<I2C_SPIN_DELAY; i++);
|
||||
for(volatile int i=0; i<SOFT_I2C_SPIN_DELAY; i++);
|
||||
}
|
||||
|
||||
static void i2c_start(void)
|
||||
{
|
||||
/* The start of data transmission occurs when
|
||||
SIO_D is driven low while SIO_C is high */
|
||||
I2C_SIOD_L();
|
||||
SOFT_I2C_SIOD_L();
|
||||
delay();
|
||||
I2C_SIOC_L();
|
||||
SOFT_I2C_SIOC_L();
|
||||
delay();
|
||||
}
|
||||
|
||||
@ -34,9 +34,9 @@ static void i2c_stop(void)
|
||||
{
|
||||
/* The stop of data transmission occurs when
|
||||
SIO_D is driven high while SIO_C is high */
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
I2C_SIOD_H();
|
||||
SOFT_I2C_SIOD_H();
|
||||
delay();
|
||||
}
|
||||
|
||||
@ -44,29 +44,29 @@ static uint8_t i2c_read_byte(char ack)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
|
||||
I2C_SIOD_H();
|
||||
SOFT_I2C_SIOD_H();
|
||||
delay();
|
||||
|
||||
for(char i=0; i<8; i++) {
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
data += data + I2C_SIOD_READ();
|
||||
data += data + SOFT_I2C_SIOD_READ();
|
||||
delay();
|
||||
I2C_SIOC_L();
|
||||
SOFT_I2C_SIOC_L();
|
||||
delay();
|
||||
}
|
||||
|
||||
/* Write ACK */
|
||||
I2C_SIOD_WRITE(ack);
|
||||
SOFT_I2C_SIOD_WRITE(ack);
|
||||
delay();
|
||||
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
|
||||
I2C_SIOC_L();
|
||||
SOFT_I2C_SIOC_L();
|
||||
delay();
|
||||
|
||||
I2C_SIOD_L();
|
||||
SOFT_I2C_SIOD_L();
|
||||
delay();
|
||||
return data;
|
||||
}
|
||||
@ -76,28 +76,28 @@ static char i2c_write_byte(uint8_t data)
|
||||
char i;
|
||||
|
||||
for(i=0; i<8; i++) {
|
||||
I2C_SIOD_WRITE((data >> (7 - i)) & 1);
|
||||
SOFT_I2C_SIOD_WRITE((data >> (7 - i)) & 1);
|
||||
delay();
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
I2C_SIOC_L();
|
||||
SOFT_I2C_SIOC_L();
|
||||
delay();
|
||||
}
|
||||
|
||||
I2C_SIOD_H();
|
||||
SOFT_I2C_SIOD_H();
|
||||
delay();
|
||||
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
|
||||
/* Read ACK */
|
||||
i = I2C_SIOD_READ();
|
||||
i = SOFT_I2C_SIOD_READ();
|
||||
delay();
|
||||
|
||||
I2C_SIOC_L();
|
||||
SOFT_I2C_SIOC_L();
|
||||
delay();
|
||||
|
||||
I2C_SIOD_L();
|
||||
SOFT_I2C_SIOD_L();
|
||||
delay();
|
||||
return i;
|
||||
}
|
||||
@ -114,9 +114,9 @@ int soft_i2c_read_bytes(uint8_t slv_addr, uint8_t *buf, int len, bool stop)
|
||||
if (stop) {
|
||||
i2c_stop();
|
||||
} else {
|
||||
I2C_SIOD_H();
|
||||
SOFT_I2C_SIOD_H();
|
||||
delay();
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
}
|
||||
MICROPY_END_ATOMIC_SECTION(atomic_state);
|
||||
@ -135,9 +135,9 @@ int soft_i2c_write_bytes(uint8_t slv_addr, uint8_t *buf, int len, bool stop)
|
||||
if (stop) {
|
||||
i2c_stop();
|
||||
} else {
|
||||
I2C_SIOD_H();
|
||||
SOFT_I2C_SIOD_H();
|
||||
delay();
|
||||
I2C_SIOC_H();
|
||||
SOFT_I2C_SIOC_H();
|
||||
delay();
|
||||
}
|
||||
MICROPY_END_ATOMIC_SECTION(atomic_state);
|
||||
@ -151,13 +151,13 @@ void soft_i2c_init()
|
||||
GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
||||
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_OD;
|
||||
|
||||
GPIO_InitStructure.Pin = I2C_SIOC_PIN;
|
||||
I2C_SIOC_H(); // Set first to prevent glitches.
|
||||
HAL_GPIO_Init(I2C_PORT, &GPIO_InitStructure);
|
||||
GPIO_InitStructure.Pin = SOFT_I2C_SIOC_PIN;
|
||||
SOFT_I2C_SIOC_H(); // Set first to prevent glitches.
|
||||
HAL_GPIO_Init(SOFT_I2C_PORT, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.Pin = I2C_SIOD_PIN;
|
||||
I2C_SIOD_H(); // Set first to prevent glitches.
|
||||
HAL_GPIO_Init(I2C_PORT, &GPIO_InitStructure);
|
||||
GPIO_InitStructure.Pin = SOFT_I2C_SIOD_PIN;
|
||||
SOFT_I2C_SIOD_H(); // Set first to prevent glitches.
|
||||
HAL_GPIO_Init(SOFT_I2C_PORT, &GPIO_InitStructure);
|
||||
|
||||
for(volatile int i=0; i<1000; i++);
|
||||
|
||||
@ -169,6 +169,6 @@ void soft_i2c_init()
|
||||
void soft_i2c_deinit()
|
||||
{
|
||||
for(volatile int i=0; i<1000; i++);
|
||||
HAL_GPIO_DeInit(I2C_PORT, I2C_SIOC_PIN);
|
||||
HAL_GPIO_DeInit(I2C_PORT, I2C_SIOD_PIN);
|
||||
HAL_GPIO_DeInit(SOFT_I2C_PORT, SOFT_I2C_SIOC_PIN);
|
||||
HAL_GPIO_DeInit(SOFT_I2C_PORT, SOFT_I2C_SIOD_PIN);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user