diff --git a/libraries/SPI/src/utility/spi_com.c b/libraries/SPI/src/utility/spi_com.c index a0b554a..b3c46bb 100644 --- a/libraries/SPI/src/utility/spi_com.c +++ b/libraries/SPI/src/utility/spi_com.c @@ -239,7 +239,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb) // Enable SPI clock if (handle->Instance == SPI1) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB2PeriphResetCmd(RCC_PB2Periph_SPI1, ENABLE); RCC_PB2PeriphResetCmd(RCC_PB2Periph_SPI1, DISABLE); RCC_PB2PeriphClockCmd(RCC_PB2Periph_SPI1, ENABLE ); @@ -254,7 +254,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb) #if defined SPI2_BASE if (handle->Instance == SPI2) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI2, ENABLE); RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI2, DISABLE); RCC_PB1PeriphClockCmd(RCC_PB1Periph_SPI2, ENABLE ); @@ -269,7 +269,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb) #if defined SPI3_BASE if (handle->Instance == SPI3) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI3, ENABLE); RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI3, DISABLE); RCC_PB1PeriphClockCmd(RCC_PB1Periph_SPI3, ENABLE ); @@ -306,7 +306,7 @@ void spi_deinit(spi_t *obj) // Reset SPI and disable clock if (handle->Instance == SPI1) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB2PeriphResetCmd(RCC_PB2Periph_SPI1, ENABLE); RCC_PB2PeriphResetCmd(RCC_PB2Periph_SPI1, DISABLE); RCC_PB2PeriphClockCmd(RCC_PB2Periph_SPI1, DISABLE); @@ -320,7 +320,7 @@ void spi_deinit(spi_t *obj) #if defined SPI2_BASE if (handle->Instance == SPI2) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI2, ENABLE); RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI2, DISABLE); RCC_PB1PeriphClockCmd(RCC_PB1Periph_SPI2, DISABLE); @@ -335,7 +335,7 @@ void spi_deinit(spi_t *obj) #if defined SPI3_BASE if (handle->Instance == SPI3) { - #if defined(CH32L10x) + #if defined(CH32L10x) || defined(CH32VM00X) RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI3, ENABLE); RCC_PB1PeriphResetCmd(RCC_PB1Periph_SPI3, DISABLE); RCC_PB1PeriphClockCmd(RCC_PB1Periph_SPI3, DISABLE); diff --git a/libraries/Wire/src/utility/twi.c b/libraries/Wire/src/utility/twi.c index 7b65983..2948fc4 100644 --- a/libraries/Wire/src/utility/twi.c +++ b/libraries/Wire/src/utility/twi.c @@ -141,9 +141,15 @@ void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint3 // Enable I2C1 clock if not done if (obj->i2c == I2C1) { + #if defined(CH32L10x) || defined(CH32VM00X) + RCC_PB1PeriphResetCmd(RCC_PB1Periph_I2C1, ENABLE); + RCC_PB1PeriphResetCmd(RCC_PB1Periph_I2C1, DISABLE); + RCC_PB1PeriphClockCmd(RCC_PB1Periph_I2C1, ENABLE ); + #else RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE ); + #endif obj->irq = I2C1_EV_IRQn; obj->irqER = I2C1_ER_IRQn; @@ -154,9 +160,15 @@ void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint3 // Enable I2C2 clock if not done if (obj->i2c == I2C2) { + #if defined(CH32L10x) || defined(CH32VM00X) + RCC_PB1PeriphResetCmd(RCC_PB1Periph_I2C2, ENABLE); + RCC_PB1PeriphResetCmd(RCC_PB1Periph_I2C2, DISABLE); + RCC_PB1PeriphClockCmd(RCC_PB1Periph_I2C2, ENABLE ); + #else RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE ); + #endif obj->irq = I2C2_EV_IRQn; obj->irqER = I2C2_ER_IRQn;