mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-21 02:06:14 +08:00
[bsp/at32] 1.add support hwi2c driver, 2.update all firmware libraries. (#9241)
* 1.add support hwi2c driver, 2.update all firmware libraries * update some files and fixed errors * add support a423 at hwi2c driver * add .ignore_format.yml
This commit is contained in:
@@ -41,6 +41,7 @@ AT32A403A-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -265,6 +265,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -129,6 +129,60 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32A423-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF10 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -277,6 +277,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -19,5 +19,6 @@ void at32_msp_hwtmr_init(void *instance);
|
||||
void at32_msp_can_init(void *instance);
|
||||
void at32_msp_usb_init(void *instance);
|
||||
void at32_msp_dac_init(void *instance);
|
||||
void at32_msp_i2c_init(void *instance);
|
||||
|
||||
#endif /* __AT32_MSP_H__ */
|
||||
|
||||
@@ -134,6 +134,68 @@ void at32_msp_spi_init(void *instance)
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F402-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| PWM | 支持 | TMR1/2 |
|
||||
|
||||
@@ -288,6 +288,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_10;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE3, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F403A-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -265,6 +265,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -129,6 +129,60 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F405-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| PWM | 支持 | TMR1/2 |
|
||||
|
||||
@@ -307,6 +307,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_10;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE3, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F407-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -282,6 +282,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -131,6 +131,60 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F413-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF5 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| PWM | 支持 | TMR1/2 |
|
||||
|
||||
@@ -253,6 +253,42 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -129,6 +129,44 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F415-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF5 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| PWM | 支持 | TMR1/2 |
|
||||
|
||||
@@ -268,6 +268,42 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -129,6 +129,44 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F421-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| PWM | 支持 | TMR1 |
|
||||
|
||||
@@ -203,6 +203,42 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -16,5 +16,6 @@ void at32_msp_spi_init(void *instance);
|
||||
void at32_msp_tmr_init(void *instance);
|
||||
void at32_msp_adc_init(void *instance);
|
||||
void at32_msp_hwtmr_init(void *instance);
|
||||
void at32_msp_i2c_init(void *instance);
|
||||
|
||||
#endif /* __AT32_MSP_H__ */
|
||||
|
||||
@@ -116,6 +116,50 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_1);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_1);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_1);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_1);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F423-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF10 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -277,6 +277,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -19,5 +19,6 @@ void at32_msp_hwtmr_init(void *instance);
|
||||
void at32_msp_can_init(void *instance);
|
||||
void at32_msp_usb_init(void *instance);
|
||||
void at32_msp_dac_init(void *instance);
|
||||
void at32_msp_i2c_init(void *instance);
|
||||
|
||||
#endif /* __AT32_MSP_H__ */
|
||||
|
||||
@@ -135,6 +135,69 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F425-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PF7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1 |
|
||||
| PWM | 支持 | TMR1/2 |
|
||||
|
||||
@@ -277,6 +277,42 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -18,5 +18,6 @@ void at32_msp_adc_init(void *instance);
|
||||
void at32_msp_hwtmr_init(void *instance);
|
||||
void at32_msp_can_init(void *instance);
|
||||
void at32_msp_usb_init(void *instance);
|
||||
void at32_msp_i2c_init(void *instance);
|
||||
|
||||
#endif /* __AT32_MSP_H__ */
|
||||
|
||||
@@ -135,6 +135,50 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_1);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_1);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_1);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_1);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_PWM
|
||||
void at32_msp_tmr_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F437-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PH7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -314,6 +314,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -126,6 +126,69 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ AT32F437-START板级包支持MDK4﹑MDK5﹑IAR开发环境和GCC编译器,以
|
||||
| UART | 支持 | USART1/2/3 |
|
||||
| GPIO | 支持 | PA0...PH7 |
|
||||
| IIC | 支持 | GPIO模拟I2C |
|
||||
| HWIIC | 支持 | I2C1/2/3 |
|
||||
| SPI | 支持 | SPI1/2 |
|
||||
| ADC | 支持 | ADC1/2 |
|
||||
| DAC | 支持 | DAC1 |
|
||||
|
||||
@@ -331,6 +331,57 @@ menu "On-chip Peripheral Drivers"
|
||||
endif
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_HARD_I2C
|
||||
bool "Enable I2C BUS (hardware driver)"
|
||||
default n
|
||||
select RT_USING_I2C
|
||||
if BSP_USING_HARD_I2C
|
||||
config BSP_USING_HARD_I2C1
|
||||
bool "Enable I2C1 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C1_TX_USING_DMA
|
||||
bool "Enable I2C1 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
default n
|
||||
|
||||
config BSP_I2C1_RX_USING_DMA
|
||||
bool "Enable I2C1 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C1
|
||||
select BSP_I2C1_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C2
|
||||
bool "Enable I2C2 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C2_TX_USING_DMA
|
||||
bool "Enable I2C2 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
default n
|
||||
|
||||
config BSP_I2C2_RX_USING_DMA
|
||||
bool "Enable I2C2 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C2
|
||||
select BSP_I2C2_TX_USING_DMA
|
||||
default n
|
||||
|
||||
config BSP_USING_HARD_I2C3
|
||||
bool "Enable I2C3 BUS"
|
||||
default n
|
||||
|
||||
config BSP_I2C3_TX_USING_DMA
|
||||
bool "Enable I2C3 TX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
default n
|
||||
|
||||
config BSP_I2C3_RX_USING_DMA
|
||||
bool "Enable I2C3 RX DMA"
|
||||
depends on BSP_USING_HARD_I2C3
|
||||
select BSP_I2C3_TX_USING_DMA
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_ADC
|
||||
bool "Enable ADC"
|
||||
default n
|
||||
|
||||
@@ -127,6 +127,69 @@ void at32_msp_spi_init(void *instance)
|
||||
}
|
||||
#endif /* BSP_USING_SPI */
|
||||
|
||||
#ifdef BSP_USING_HARD_I2C
|
||||
void at32_msp_i2c_init(void *instance)
|
||||
{
|
||||
gpio_init_type gpio_init_struct;
|
||||
i2c_type *i2c_x = (i2c_type *)instance;
|
||||
|
||||
gpio_default_para_init(&gpio_init_struct);
|
||||
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
|
||||
#ifdef BSP_USING_HARD_I2C1
|
||||
if(I2C1 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C2
|
||||
if(I2C2 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11;
|
||||
gpio_init(GPIOB, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
#ifdef BSP_USING_HARD_I2C3
|
||||
if(I2C3 == i2c_x)
|
||||
{
|
||||
crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
|
||||
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
|
||||
|
||||
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
|
||||
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN;
|
||||
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_8;
|
||||
gpio_init(GPIOA, &gpio_init_struct);
|
||||
gpio_init_struct.gpio_pins = GPIO_PINS_9;
|
||||
gpio_init(GPIOC, &gpio_init_struct);
|
||||
|
||||
gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE8, GPIO_MUX_4);
|
||||
gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE9, GPIO_MUX_4);
|
||||
}
|
||||
#endif
|
||||
/* add others */
|
||||
}
|
||||
#endif /* BSP_USING_HARD_I2C */
|
||||
|
||||
#ifdef BSP_USING_SDIO
|
||||
void at32_msp_sdio_init(void *instance)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# files format check exclude path, please follow the instructions below to modify;
|
||||
# If you need to exclude an entire folder, add the folder path in dir_path;
|
||||
# If you need to exclude a file, add the path to the file in file_path.
|
||||
|
||||
dir_path:
|
||||
- AT32A403A_Firmware_Library
|
||||
- AT32A423_Firmware_Library
|
||||
- AT32F402_405_Firmware_Library
|
||||
- AT32F403A_407_Firmware_Library
|
||||
- AT32F413_Firmware_Library
|
||||
- AT32F415_Firmware_Library
|
||||
- AT32F421_Firmware_Library
|
||||
- AT32F423_Firmware_Library
|
||||
- AT32F425_Firmware_Library
|
||||
- AT32F435_437_Firmware_Library
|
||||
+44
@@ -179,6 +179,50 @@ void system_core_clock_update(void)
|
||||
system_core_clock = system_core_clock >> div_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief reduce power consumption initialize
|
||||
* If OTGHS is not used, call this function to reduce power consumption.
|
||||
* PLL or HEXT should be enabled when calling this function.
|
||||
*
|
||||
* If OTGHS is required, initialize OTGHS to reduce power consumption,
|
||||
* without the need to call this function.
|
||||
* @param none
|
||||
* @retval none
|
||||
*/
|
||||
void reduce_power_consumption(void)
|
||||
{
|
||||
volatile uint32_t delay = 0x34BC0;
|
||||
if(CRM->ctrl_bit.hextstbl)
|
||||
{
|
||||
*(__IO uint32_t *)0x40023878 = 0x00;
|
||||
}
|
||||
else if(CRM->ctrl_bit.pllstbl == SET)
|
||||
{
|
||||
CRM->pllcfg_bit.plluen = TRUE;
|
||||
while(CRM->ctrl_bit.pllstbl != SET || CRM->ctrl_bit.pllustbl != SET);
|
||||
*(__IO uint32_t *)0x40023878 = 0x10;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* the pll or hext need to be enable */
|
||||
return;
|
||||
}
|
||||
CRM->ahben1 |= 1 << 29;
|
||||
*(__IO uint32_t *)0x40040038 = 0x210000;
|
||||
*(__IO uint32_t *)0x4004000C |= 0x40000000;
|
||||
*(__IO uint32_t *)0x40040804 &= ~0x2;
|
||||
while(delay --)
|
||||
{
|
||||
if(*(__IO uint32_t *)0x40040808 & 0x1)
|
||||
break;
|
||||
}
|
||||
*(__IO uint32_t *)0x40040038 |= 0x400000;
|
||||
*(__IO uint32_t *)0x40040E00 |= 0x1;
|
||||
*(__IO uint32_t *)0x40040038 &= ~0x10000;
|
||||
*(__IO uint32_t *)0x40023878 = 0x0;
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
+1
@@ -52,6 +52,7 @@ extern unsigned int system_core_clock; /*!< system clock frequency (core clock)
|
||||
|
||||
extern void SystemInit(void);
|
||||
extern void system_core_clock_update(void);
|
||||
extern void reduce_power_consumption(void);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
||||
@@ -178,6 +178,7 @@ uint16_t acc_read_c1(void);
|
||||
uint16_t acc_read_c2(void);
|
||||
uint16_t acc_read_c3(void);
|
||||
flag_status acc_flag_get(uint16_t acc_flag);
|
||||
flag_status acc_interrupt_flag_get(uint16_t acc_flag);
|
||||
void acc_flag_clear(uint16_t acc_flag);
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
**************************************************************************
|
||||
* @file at32f425_adc.h
|
||||
* @brief at32f425 adc header file
|
||||
* @file at32f402_405_adc.h
|
||||
* @brief at32f402_405 adc header file
|
||||
**************************************************************************
|
||||
* Copyright notice & Disclaimer
|
||||
*
|
||||
@@ -34,7 +34,7 @@ extern "C" {
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "at32f402_405.h"
|
||||
|
||||
/** @addtogroup AT32F425_periph_driver
|
||||
/** @addtogroup AT32F402_405_periph_driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
@@ -688,6 +688,7 @@ flag_status adc_preempt_software_trigger_status_get(adc_type *adc_x);
|
||||
uint16_t adc_ordinary_conversion_data_get(adc_type *adc_x);
|
||||
uint16_t adc_preempt_conversion_data_get(adc_type *adc_x, adc_preempt_channel_type adc_preempt_channel);
|
||||
flag_status adc_flag_get(adc_type *adc_x, uint8_t adc_flag);
|
||||
flag_status adc_interrupt_flag_get(adc_type *adc_x, uint8_t adc_flag);
|
||||
void adc_flag_clear(adc_type *adc_x, uint32_t adc_flag);
|
||||
void adc_ordinary_oversample_enable(adc_type *adc_x, confirm_state new_state);
|
||||
void adc_preempt_oversample_enable(adc_type *adc_x, confirm_state new_state);
|
||||
|
||||
@@ -1018,6 +1018,7 @@ can_error_record_type can_error_type_record_get(can_type* can_x);
|
||||
uint8_t can_receive_error_counter_get(can_type* can_x);
|
||||
uint8_t can_transmit_error_counter_get(can_type* can_x);
|
||||
void can_interrupt_enable(can_type* can_x, uint32_t can_int, confirm_state new_state);
|
||||
flag_status can_interrupt_flag_get(can_type* can_x, uint32_t can_flag);
|
||||
flag_status can_flag_get(can_type* can_x, uint32_t can_flag);
|
||||
void can_flag_clear(can_type* can_x, uint32_t can_flag);
|
||||
|
||||
|
||||
@@ -461,8 +461,7 @@ typedef enum
|
||||
CRM_CLKOUT_ADC = 0x11, /*!< output adcclk to clkout pin */
|
||||
CRM_CLKOUT_HICK = 0x12, /*!< output high speed internal clock to clkout pin */
|
||||
CRM_CLKOUT_LICK = 0x13, /*!< output low speed internal clock to clkout pin */
|
||||
CRM_CLKOUT_LEXT = 0x14, /*!< output low speed external crystal to clkout pin */
|
||||
CRM_CLKOUT_USBHS = 0x15 /*!< output usbhsclk to clkout pin */
|
||||
CRM_CLKOUT_LEXT = 0x14 /*!< output low speed external crystal to clkout pin */
|
||||
} crm_clkout_select_type;
|
||||
|
||||
/**
|
||||
@@ -1179,6 +1178,7 @@ void crm_reset(void);
|
||||
void crm_lext_bypass(confirm_state new_state);
|
||||
void crm_hext_bypass(confirm_state new_state);
|
||||
flag_status crm_flag_get(uint32_t flag);
|
||||
flag_status crm_interrupt_flag_get(uint32_t flag);
|
||||
error_status crm_hext_stable_wait(void);
|
||||
void crm_hick_clock_trimming_set(uint8_t trim_value);
|
||||
void crm_hick_clock_calibration_set(uint8_t cali_value);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user