diff --git a/project/src/at32f403a_407_int.c b/project/src/at32f403a_407_int.c index f7348c4..6410626 100644 --- a/project/src/at32f403a_407_int.c +++ b/project/src/at32f403a_407_int.c @@ -261,7 +261,10 @@ void USART2_IRQHandler(void) void USART3_IRQHandler(void) { /* add user code begin USART3_IRQ 0 */ - + if (SET == usart_flag_get(USART3, USART_RDBF_FLAG)) { + // usart_data_transmit(USART1, usart_data_receive(USART3)); + usart_flag_clear(USART3, USART_RDBF_FLAG); + } /* add user code end USART3_IRQ 0 */ /* add user code begin USART3_IRQ 1 */ @@ -298,7 +301,7 @@ void CAN2_RX0_IRQHandler(void) can_message_receive(CAN2, CAN_RX_FIFO0, &rx_message_struct); lwprintf("CAN2 RECV: ID = 0x%X\r\n", rx_message_struct.standard_id); lwprintf("---------------------\r\n| "); - for (uint8_t i = 0; i < 8; i++) { + for (uint8_t i = 0; i < rx_message_struct.dlc; i++) { lwprintf("0x%02X |", rx_message_struct.data[i]); } lwprintf("\r\n---------------------\r\n"); diff --git a/project/src/at32f403a_407_wk_config.c b/project/src/at32f403a_407_wk_config.c index d33b4eb..fd6d947 100644 --- a/project/src/at32f403a_407_wk_config.c +++ b/project/src/at32f403a_407_wk_config.c @@ -81,64 +81,64 @@ */ void wk_system_clock_config(void) { - /* reset crm */ - crm_reset(); + /* reset crm */ + crm_reset(); - /* enable lick */ - crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE); + /* enable lick */ + crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE); - /* wait till lick is ready */ - while (crm_flag_get(CRM_LICK_STABLE_FLAG) != SET) { - } + /* wait till lick is ready */ + while (crm_flag_get(CRM_LICK_STABLE_FLAG) != SET) { + } - /* enable hext */ - crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, TRUE); + /* enable hext */ + crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, TRUE); - /* wait till hext is ready */ - while (crm_hext_stable_wait() == ERROR) { - } + /* wait till hext is ready */ + while (crm_hext_stable_wait() == ERROR) { + } - /* enable hick */ - crm_clock_source_enable(CRM_CLOCK_SOURCE_HICK, TRUE); + /* enable hick */ + crm_clock_source_enable(CRM_CLOCK_SOURCE_HICK, TRUE); - /* wait till hick is ready */ - while (crm_flag_get(CRM_HICK_STABLE_FLAG) != SET) { - } + /* wait till hick is ready */ + while (crm_flag_get(CRM_HICK_STABLE_FLAG) != SET) { + } - /* config pll clock resource */ - crm_pll_config(CRM_PLL_SOURCE_HICK, CRM_PLL_MULT_60, CRM_PLL_OUTPUT_RANGE_GT72MHZ); + /* config pll clock resource */ + crm_pll_config(CRM_PLL_SOURCE_HICK, CRM_PLL_MULT_60, CRM_PLL_OUTPUT_RANGE_GT72MHZ); - /* enable pll */ - crm_clock_source_enable(CRM_CLOCK_SOURCE_PLL, TRUE); + /* enable pll */ + crm_clock_source_enable(CRM_CLOCK_SOURCE_PLL, TRUE); - /* wait till pll is ready */ - while (crm_flag_get(CRM_PLL_STABLE_FLAG) != SET) { - } + /* wait till pll is ready */ + while (crm_flag_get(CRM_PLL_STABLE_FLAG) != SET) { + } - /* config ahbclk */ - crm_ahb_div_set(CRM_AHB_DIV_1); + /* config ahbclk */ + crm_ahb_div_set(CRM_AHB_DIV_1); - /* config apb2clk, the maximum frequency of APB2 clock is 120 MHz */ - crm_apb2_div_set(CRM_APB2_DIV_2); + /* config apb2clk, the maximum frequency of APB2 clock is 120 MHz */ + crm_apb2_div_set(CRM_APB2_DIV_2); - /* config apb1clk, the maximum frequency of APB1 clock is 120 MHz */ - crm_apb1_div_set(CRM_APB1_DIV_2); + /* config apb1clk, the maximum frequency of APB1 clock is 120 MHz */ + crm_apb1_div_set(CRM_APB1_DIV_2); - /* enable auto step mode */ - crm_auto_step_mode_enable(TRUE); + /* enable auto step mode */ + crm_auto_step_mode_enable(TRUE); - /* select pll as system clock source */ - crm_sysclk_switch(CRM_SCLK_PLL); + /* select pll as system clock source */ + crm_sysclk_switch(CRM_SCLK_PLL); - /* wait till pll is used as system clock source */ - while (crm_sysclk_switch_status_get() != CRM_SCLK_PLL) { - } + /* wait till pll is used as system clock source */ + while (crm_sysclk_switch_status_get() != CRM_SCLK_PLL) { + } - /* disable auto step mode */ - crm_auto_step_mode_enable(FALSE); + /* disable auto step mode */ + crm_auto_step_mode_enable(FALSE); - /* update system_core_clock global variable */ - system_core_clock_update(); + /* update system_core_clock global variable */ + system_core_clock_update(); } /** @@ -148,56 +148,56 @@ void wk_system_clock_config(void) */ void wk_periph_clock_config(void) { - /* enable iomux periph clock */ - crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE); + /* enable iomux periph clock */ + crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE); - /* enable gpioa periph clock */ - crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE); + /* enable gpioa periph clock */ + crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE); - /* enable gpiob periph clock */ - crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE); + /* enable gpiob periph clock */ + crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE); - /* enable gpioc periph clock */ - crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE); + /* enable gpioc periph clock */ + crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE); - /* enable gpiod periph clock */ - crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE); + /* enable gpiod periph clock */ + crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE); - /* enable adc1 periph clock */ - crm_periph_clock_enable(CRM_ADC1_PERIPH_CLOCK, TRUE); + /* enable adc1 periph clock */ + crm_periph_clock_enable(CRM_ADC1_PERIPH_CLOCK, TRUE); - /* enable tmr8 periph clock */ - crm_periph_clock_enable(CRM_TMR8_PERIPH_CLOCK, TRUE); + /* enable tmr8 periph clock */ + crm_periph_clock_enable(CRM_TMR8_PERIPH_CLOCK, TRUE); - /* enable usart1 periph clock */ - crm_periph_clock_enable(CRM_USART1_PERIPH_CLOCK, TRUE); + /* enable usart1 periph clock */ + crm_periph_clock_enable(CRM_USART1_PERIPH_CLOCK, TRUE); - /* enable tmr11 periph clock */ - crm_periph_clock_enable(CRM_TMR11_PERIPH_CLOCK, TRUE); + /* enable tmr11 periph clock */ + crm_periph_clock_enable(CRM_TMR11_PERIPH_CLOCK, TRUE); - /* enable tmr6 periph clock */ - crm_periph_clock_enable(CRM_TMR6_PERIPH_CLOCK, TRUE); + /* enable tmr6 periph clock */ + crm_periph_clock_enable(CRM_TMR6_PERIPH_CLOCK, TRUE); - /* enable tmr12 periph clock */ - crm_periph_clock_enable(CRM_TMR12_PERIPH_CLOCK, TRUE); + /* enable tmr12 periph clock */ + crm_periph_clock_enable(CRM_TMR12_PERIPH_CLOCK, TRUE); - /* enable usart2 periph clock */ - crm_periph_clock_enable(CRM_USART2_PERIPH_CLOCK, TRUE); + /* enable usart2 periph clock */ + crm_periph_clock_enable(CRM_USART2_PERIPH_CLOCK, TRUE); - /* enable usart3 periph clock */ - crm_periph_clock_enable(CRM_USART3_PERIPH_CLOCK, TRUE); + /* enable usart3 periph clock */ + crm_periph_clock_enable(CRM_USART3_PERIPH_CLOCK, TRUE); - /* enable i2c1 periph clock */ - crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE); + /* enable i2c1 periph clock */ + crm_periph_clock_enable(CRM_I2C1_PERIPH_CLOCK, TRUE); - /* enable i2c2 periph clock */ - crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE); + /* enable i2c2 periph clock */ + crm_periph_clock_enable(CRM_I2C2_PERIPH_CLOCK, TRUE); - /* enable can1 periph clock */ - crm_periph_clock_enable(CRM_CAN1_PERIPH_CLOCK, TRUE); + /* enable can1 periph clock */ + crm_periph_clock_enable(CRM_CAN1_PERIPH_CLOCK, TRUE); - /* enable can2 periph clock */ - crm_periph_clock_enable(CRM_CAN2_PERIPH_CLOCK, TRUE); + /* enable can2 periph clock */ + crm_periph_clock_enable(CRM_CAN2_PERIPH_CLOCK, TRUE); } /** @@ -207,8 +207,8 @@ void wk_periph_clock_config(void) */ void wk_debug_config(void) { - /* jtag-dp disabled and sw-dp enabled */ - gpio_pin_remap_config(SWJTAG_GMUX_010, TRUE); + /* jtag-dp disabled and sw-dp enabled */ + gpio_pin_remap_config(SWJTAG_GMUX_010, TRUE); } /** @@ -218,14 +218,14 @@ void wk_debug_config(void) */ void wk_nvic_config(void) { - nvic_priority_group_config(NVIC_PRIORITY_GROUP_4); + nvic_priority_group_config(NVIC_PRIORITY_GROUP_4); - nvic_irq_enable(USBFS_L_CAN1_RX0_IRQn, 0, 0); - nvic_irq_enable(USART1_IRQn, 1, 0); - nvic_irq_enable(USART2_IRQn, 1, 0); - nvic_irq_enable(USART3_IRQn, 1, 0); - nvic_irq_enable(TMR6_GLOBAL_IRQn, 0, 0); - nvic_irq_enable(CAN2_RX0_IRQn, 0, 0); + nvic_irq_enable(USBFS_L_CAN1_RX0_IRQn, 0, 0); + nvic_irq_enable(USART1_IRQn, 1, 0); + nvic_irq_enable(USART2_IRQn, 1, 0); + nvic_irq_enable(USART3_IRQn, 1, 0); + nvic_irq_enable(TMR6_GLOBAL_IRQn, 0, 0); + nvic_irq_enable(CAN2_RX0_IRQn, 0, 0); } /** @@ -235,46 +235,46 @@ void wk_nvic_config(void) */ void wk_gpio_config(void) { - /* add user code begin gpio_config 0 */ + /* add user code begin gpio_config 0 */ - /* add user code end gpio_config 0 */ + /* add user code end gpio_config 0 */ - gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin gpio_config 1 */ + /* add user code begin gpio_config 1 */ - /* add user code end gpio_config 1 */ + /* add user code end gpio_config 1 */ - /* gpio input config */ - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_4 | GPIO_PINS_5 | GPIO_PINS_6 | GPIO_PINS_7; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* gpio input config */ + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_4 | GPIO_PINS_5 | GPIO_PINS_6 | GPIO_PINS_7; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_2; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOD, &gpio_init_struct); + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_2; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOD, &gpio_init_struct); - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_4 | GPIO_PINS_5; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOB, &gpio_init_struct); + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_4 | GPIO_PINS_5; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOB, &gpio_init_struct); - /* gpio output config */ - gpio_bits_reset(GPIOC, GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_2 | GPIO_PINS_3); + /* gpio output config */ + gpio_bits_reset(GPIOC, GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_2 | GPIO_PINS_3); - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_2 | GPIO_PINS_3; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &gpio_init_struct); + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_2 | GPIO_PINS_3; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOC, &gpio_init_struct); - /* add user code begin gpio_config 2 */ + /* add user code begin gpio_config 2 */ - /* add user code end gpio_config 2 */ + /* add user code end gpio_config 2 */ } /** @@ -284,45 +284,45 @@ void wk_gpio_config(void) */ void wk_i2c1_init(void) { - /* add user code begin i2c1_init 0 */ + /* add user code begin i2c1_init 0 */ - /* add user code end i2c1_init 0 */ + /* add user code end i2c1_init 0 */ - gpio_init_type gpio_init_struct; + gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_default_para_init(&gpio_init_struct); - /* add user code begin i2c1_init 1 */ + /* add user code begin i2c1_init 1 */ - /* add user code end i2c1_init 1 */ + /* add user code end i2c1_init 1 */ - /* configure the SCL pin */ - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_pins = GPIO_PINS_6; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the SCL pin */ + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_pins = GPIO_PINS_6; + gpio_init(GPIOB, &gpio_init_struct); - /* configure the SDA pin */ - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_pins = GPIO_PINS_7; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the SDA pin */ + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_pins = GPIO_PINS_7; + gpio_init(GPIOB, &gpio_init_struct); - i2c_init(I2C1, I2C_FSMODE_DUTY_2_1, 100000); - i2c_own_address1_set(I2C1, I2C_ADDRESS_MODE_7BIT, 0x0); - i2c_ack_enable(I2C1, TRUE); - i2c_clock_stretch_enable(I2C1, TRUE); - i2c_general_call_enable(I2C1, FALSE); + i2c_init(I2C1, I2C_FSMODE_DUTY_2_1, 100000); + i2c_own_address1_set(I2C1, I2C_ADDRESS_MODE_7BIT, 0x0); + i2c_ack_enable(I2C1, TRUE); + i2c_clock_stretch_enable(I2C1, TRUE); + i2c_general_call_enable(I2C1, FALSE); - i2c_enable(I2C1, TRUE); + i2c_enable(I2C1, TRUE); - /* add user code begin i2c1_init 2 */ + /* add user code begin i2c1_init 2 */ - /* add user code end i2c1_init 2 */ + /* add user code end i2c1_init 2 */ } /** @@ -332,45 +332,45 @@ void wk_i2c1_init(void) */ void wk_i2c2_init(void) { - /* add user code begin i2c2_init 0 */ + /* add user code begin i2c2_init 0 */ - /* add user code end i2c2_init 0 */ + /* add user code end i2c2_init 0 */ - gpio_init_type gpio_init_struct; + gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_default_para_init(&gpio_init_struct); - /* add user code begin i2c2_init 1 */ + /* add user code begin i2c2_init 1 */ - /* add user code end i2c2_init 1 */ + /* add user code end i2c2_init 1 */ - /* configure the SCL pin */ - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_pins = GPIO_PINS_10; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the SCL pin */ + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_pins = GPIO_PINS_10; + gpio_init(GPIOB, &gpio_init_struct); - /* configure the SDA pin */ - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_pins = GPIO_PINS_11; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the SDA pin */ + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_OPEN_DRAIN; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_pins = GPIO_PINS_11; + gpio_init(GPIOB, &gpio_init_struct); - i2c_init(I2C2, I2C_FSMODE_DUTY_2_1, 100000); - i2c_own_address1_set(I2C2, I2C_ADDRESS_MODE_7BIT, 0x0); - i2c_ack_enable(I2C2, TRUE); - i2c_clock_stretch_enable(I2C2, TRUE); - i2c_general_call_enable(I2C2, FALSE); + i2c_init(I2C2, I2C_FSMODE_DUTY_2_1, 100000); + i2c_own_address1_set(I2C2, I2C_ADDRESS_MODE_7BIT, 0x0); + i2c_ack_enable(I2C2, TRUE); + i2c_clock_stretch_enable(I2C2, TRUE); + i2c_general_call_enable(I2C2, FALSE); - i2c_enable(I2C2, TRUE); + i2c_enable(I2C2, TRUE); - /* add user code begin i2c2_init 2 */ + /* add user code begin i2c2_init 2 */ - /* add user code end i2c2_init 2 */ + /* add user code end i2c2_init 2 */ } /** @@ -380,54 +380,54 @@ void wk_i2c2_init(void) */ void wk_usart1_init(void) { - /* add user code begin usart1_init 0 */ + /* add user code begin usart1_init 0 */ - /* add user code end usart1_init 0 */ + /* add user code end usart1_init 0 */ - gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin usart1_init 1 */ + /* add user code begin usart1_init 1 */ - /* add user code end usart1_init 1 */ + /* add user code end usart1_init 1 */ - /* configure the TX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_pins = GPIO_PINS_9; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the TX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_pins = GPIO_PINS_9; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /* configure the RX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_10; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the RX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_10; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /* configure param */ - usart_init(USART1, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); - usart_transmitter_enable(USART1, TRUE); - usart_receiver_enable(USART1, TRUE); - usart_parity_selection_config(USART1, USART_PARITY_NONE); + /* configure param */ + usart_init(USART1, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); + usart_transmitter_enable(USART1, TRUE); + usart_receiver_enable(USART1, TRUE); + usart_parity_selection_config(USART1, USART_PARITY_NONE); - usart_hardware_flow_control_set(USART1, USART_HARDWARE_FLOW_NONE); + usart_hardware_flow_control_set(USART1, USART_HARDWARE_FLOW_NONE); - /** - * Users need to configure USART1 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding USART1 interrupt. - * --usart_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void USART1_IRQHandler(void) - */ + /** + * Users need to configure USART1 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding USART1 interrupt. + * --usart_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void USART1_IRQHandler(void) + */ - usart_enable(USART1, TRUE); + usart_enable(USART1, TRUE); - /* add user code begin usart1_init 2 */ + /* add user code begin usart1_init 2 */ - /* add user code end usart1_init 2 */ + /* add user code end usart1_init 2 */ } /** @@ -437,54 +437,54 @@ void wk_usart1_init(void) */ void wk_usart2_init(void) { - /* add user code begin usart2_init 0 */ + /* add user code begin usart2_init 0 */ - /* add user code end usart2_init 0 */ + /* add user code end usart2_init 0 */ - gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin usart2_init 1 */ + /* add user code begin usart2_init 1 */ - /* add user code end usart2_init 1 */ + /* add user code end usart2_init 1 */ - /* configure the TX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_pins = GPIO_PINS_2; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the TX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_pins = GPIO_PINS_2; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /* configure the RX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_3; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the RX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_3; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /* configure param */ - usart_init(USART2, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); - usart_transmitter_enable(USART2, TRUE); - usart_receiver_enable(USART2, TRUE); - usart_parity_selection_config(USART2, USART_PARITY_NONE); + /* configure param */ + usart_init(USART2, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); + usart_transmitter_enable(USART2, TRUE); + usart_receiver_enable(USART2, TRUE); + usart_parity_selection_config(USART2, USART_PARITY_NONE); - usart_hardware_flow_control_set(USART2, USART_HARDWARE_FLOW_NONE); + usart_hardware_flow_control_set(USART2, USART_HARDWARE_FLOW_NONE); - /** - * Users need to configure USART2 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding USART2 interrupt. - * --usart_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void USART2_IRQHandler(void) - */ + /** + * Users need to configure USART2 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding USART2 interrupt. + * --usart_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void USART2_IRQHandler(void) + */ - usart_enable(USART2, TRUE); + usart_enable(USART2, TRUE); - /* add user code begin usart2_init 2 */ - usart_interrupt_enable(USART2, USART_RDBF_INT, TRUE); - /* add user code end usart2_init 2 */ + /* add user code begin usart2_init 2 */ + usart_interrupt_enable(USART2, USART_RDBF_INT, TRUE); + /* add user code end usart2_init 2 */ } /** @@ -494,56 +494,56 @@ void wk_usart2_init(void) */ void wk_usart3_init(void) { - /* add user code begin usart3_init 0 */ + /* add user code begin usart3_init 0 */ - /* add user code end usart3_init 0 */ + /* add user code end usart3_init 0 */ - gpio_init_type gpio_init_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin usart3_init 1 */ + /* add user code begin usart3_init 1 */ - /* add user code end usart3_init 1 */ + /* add user code end usart3_init 1 */ - /* configure the TX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_pins = GPIO_PINS_10; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the TX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_pins = GPIO_PINS_10; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOC, &gpio_init_struct); - /* configure the RX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_11; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the RX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_11; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOC, &gpio_init_struct); - gpio_pin_remap_config(USART3_GMUX_0001, TRUE); + gpio_pin_remap_config(USART3_GMUX_0001, TRUE); - /* configure param */ - usart_init(USART3, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); - usart_transmitter_enable(USART3, TRUE); - usart_receiver_enable(USART3, TRUE); - usart_parity_selection_config(USART3, USART_PARITY_NONE); + /* configure param */ + usart_init(USART3, 115200, USART_DATA_8BITS, USART_STOP_1_BIT); + usart_transmitter_enable(USART3, TRUE); + usart_receiver_enable(USART3, TRUE); + usart_parity_selection_config(USART3, USART_PARITY_NONE); - usart_hardware_flow_control_set(USART3, USART_HARDWARE_FLOW_NONE); + usart_hardware_flow_control_set(USART3, USART_HARDWARE_FLOW_NONE); - /** - * Users need to configure USART3 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding USART3 interrupt. - * --usart_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void USART3_IRQHandler(void) - */ + /** + * Users need to configure USART3 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding USART3 interrupt. + * --usart_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void USART3_IRQHandler(void) + */ - usart_enable(USART3, TRUE); + usart_enable(USART3, TRUE); - /* add user code begin usart3_init 2 */ - - /* add user code end usart3_init 2 */ + /* add user code begin usart3_init 2 */ + usart_interrupt_enable(USART3, USART_RDBF_INT, TRUE); + /* add user code end usart3_init 2 */ } /** @@ -553,35 +553,35 @@ void wk_usart3_init(void) */ void wk_tmr6_init(void) { - /* add user code begin tmr6_init 0 */ + /* add user code begin tmr6_init 0 */ - /* add user code end tmr6_init 0 */ + /* add user code end tmr6_init 0 */ - /* add user code begin tmr6_init 1 */ + /* add user code begin tmr6_init 1 */ - /* add user code end tmr6_init 1 */ + /* add user code end tmr6_init 1 */ - /* configure counter settings */ - tmr_base_init(TMR6, 47999, 4999); - tmr_cnt_dir_set(TMR6, TMR_COUNT_UP); - tmr_period_buffer_enable(TMR6, FALSE); + /* configure counter settings */ + tmr_base_init(TMR6, 47999, 4999); + tmr_cnt_dir_set(TMR6, TMR_COUNT_UP); + tmr_period_buffer_enable(TMR6, FALSE); - /* configure primary mode settings */ - tmr_primary_mode_select(TMR6, TMR_PRIMARY_SEL_RESET); + /* configure primary mode settings */ + tmr_primary_mode_select(TMR6, TMR_PRIMARY_SEL_RESET); - tmr_counter_enable(TMR6, TRUE); + tmr_counter_enable(TMR6, TRUE); - /** - * Users need to configure TMR6 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding TMR6 interrupt. - * --tmr_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void TMR6_GLOBAL_IRQHandler(void) - */ + /** + * Users need to configure TMR6 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding TMR6 interrupt. + * --tmr_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void TMR6_GLOBAL_IRQHandler(void) + */ - /* add user code begin tmr6_init 2 */ - tmr_interrupt_enable(TMR6, TMR_OVF_INT, TRUE); - /* add user code end tmr6_init 2 */ + /* add user code begin tmr6_init 2 */ + tmr_interrupt_enable(TMR6, TMR_OVF_INT, TRUE); + /* add user code end tmr6_init 2 */ } /** @@ -591,128 +591,128 @@ void wk_tmr6_init(void) */ void wk_tmr8_init(void) { - /* add user code begin tmr8_init 0 */ + /* add user code begin tmr8_init 0 */ - /* add user code end tmr8_init 0 */ + /* add user code end tmr8_init 0 */ - gpio_init_type gpio_init_struct; - tmr_output_config_type tmr_output_struct; - tmr_brkdt_config_type tmr_brkdt_struct; + gpio_init_type gpio_init_struct; + tmr_output_config_type tmr_output_struct; + tmr_brkdt_config_type tmr_brkdt_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_default_para_init(&gpio_init_struct); - /* add user code begin tmr8_init 1 */ + /* add user code begin tmr8_init 1 */ - /* add user code end tmr8_init 1 */ + /* add user code end tmr8_init 1 */ - /* configure the CH1 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_6; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the CH1 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_6; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOC, &gpio_init_struct); - /* configure the CH2 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_7; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the CH2 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_7; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOC, &gpio_init_struct); - /* configure the CH3 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_8; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the CH3 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_8; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOC, &gpio_init_struct); - /* configure the CH4 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_9; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOC, &gpio_init_struct); + /* configure the CH4 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_9; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOC, &gpio_init_struct); - /* configure counter settings */ - tmr_base_init(TMR8, 65535, 0); - tmr_cnt_dir_set(TMR8, TMR_COUNT_UP); - tmr_clock_source_div_set(TMR8, TMR_CLOCK_DIV1); - tmr_repetition_counter_set(TMR8, 0); - tmr_period_buffer_enable(TMR8, FALSE); + /* configure counter settings */ + tmr_base_init(TMR8, 65535, 0); + tmr_cnt_dir_set(TMR8, TMR_COUNT_UP); + tmr_clock_source_div_set(TMR8, TMR_CLOCK_DIV1); + tmr_repetition_counter_set(TMR8, 0); + tmr_period_buffer_enable(TMR8, FALSE); - /* configure primary mode settings */ - tmr_sub_sync_mode_set(TMR8, FALSE); - tmr_primary_mode_select(TMR8, TMR_PRIMARY_SEL_RESET); + /* configure primary mode settings */ + tmr_sub_sync_mode_set(TMR8, FALSE); + tmr_primary_mode_select(TMR8, TMR_PRIMARY_SEL_RESET); - /* configure channel 1 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_1, &tmr_output_struct); - tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_1, 0); - tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_1, FALSE); + /* configure channel 1 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_1, &tmr_output_struct); + tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_1, 0); + tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_1, FALSE); - /* configure channel 2 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_2, &tmr_output_struct); - tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_2, 0); - tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_2, FALSE); + /* configure channel 2 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_2, &tmr_output_struct); + tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_2, 0); + tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_2, FALSE); - /* configure channel 3 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_3, &tmr_output_struct); - tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_3, 0); - tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_3, FALSE); + /* configure channel 3 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_3, &tmr_output_struct); + tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_3, 0); + tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_3, FALSE); - /* configure channel 4 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_4, &tmr_output_struct); - tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_4, 0); - tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_4, FALSE); + /* configure channel 4 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR8, TMR_SELECT_CHANNEL_4, &tmr_output_struct); + tmr_channel_value_set(TMR8, TMR_SELECT_CHANNEL_4, 0); + tmr_output_channel_buffer_enable(TMR8, TMR_SELECT_CHANNEL_4, FALSE); - /* configure break and dead-time settings */ - tmr_brkdt_struct.brk_enable = FALSE; - tmr_brkdt_struct.auto_output_enable = FALSE; - tmr_brkdt_struct.brk_polarity = TMR_BRK_INPUT_ACTIVE_LOW; - tmr_brkdt_struct.fcsoen_state = FALSE; - tmr_brkdt_struct.fcsodis_state = FALSE; - tmr_brkdt_struct.wp_level = TMR_WP_OFF; - tmr_brkdt_struct.deadtime = 0; - tmr_brkdt_config(TMR8, &tmr_brkdt_struct); + /* configure break and dead-time settings */ + tmr_brkdt_struct.brk_enable = FALSE; + tmr_brkdt_struct.auto_output_enable = FALSE; + tmr_brkdt_struct.brk_polarity = TMR_BRK_INPUT_ACTIVE_LOW; + tmr_brkdt_struct.fcsoen_state = FALSE; + tmr_brkdt_struct.fcsodis_state = FALSE; + tmr_brkdt_struct.wp_level = TMR_WP_OFF; + tmr_brkdt_struct.deadtime = 0; + tmr_brkdt_config(TMR8, &tmr_brkdt_struct); - tmr_output_enable(TMR8, TRUE); + tmr_output_enable(TMR8, TRUE); - tmr_counter_enable(TMR8, TRUE); + tmr_counter_enable(TMR8, TRUE); - /* add user code begin tmr8_init 2 */ + /* add user code begin tmr8_init 2 */ - /* add user code end tmr8_init 2 */ + /* add user code end tmr8_init 2 */ } /** @@ -722,51 +722,51 @@ void wk_tmr8_init(void) */ void wk_tmr11_init(void) { - /* add user code begin tmr11_init 0 */ + /* add user code begin tmr11_init 0 */ - /* add user code end tmr11_init 0 */ + /* add user code end tmr11_init 0 */ - gpio_init_type gpio_init_struct; - tmr_output_config_type tmr_output_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + tmr_output_config_type tmr_output_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin tmr11_init 1 */ + /* add user code begin tmr11_init 1 */ - /* add user code end tmr11_init 1 */ + /* add user code end tmr11_init 1 */ - /* configure the CH1 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_9; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the CH1 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_9; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOB, &gpio_init_struct); - /* configure counter settings */ - tmr_base_init(TMR11, 2399, 99); - tmr_cnt_dir_set(TMR11, TMR_COUNT_UP); - tmr_clock_source_div_set(TMR11, TMR_CLOCK_DIV1); - tmr_period_buffer_enable(TMR11, FALSE); + /* configure counter settings */ + tmr_base_init(TMR11, 2399, 99); + tmr_cnt_dir_set(TMR11, TMR_COUNT_UP); + tmr_clock_source_div_set(TMR11, TMR_CLOCK_DIV1); + tmr_period_buffer_enable(TMR11, FALSE); - /* configure channel 1 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR11, TMR_SELECT_CHANNEL_1, &tmr_output_struct); - tmr_channel_value_set(TMR11, TMR_SELECT_CHANNEL_1, 0); - tmr_output_channel_buffer_enable(TMR11, TMR_SELECT_CHANNEL_1, FALSE); + /* configure channel 1 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR11, TMR_SELECT_CHANNEL_1, &tmr_output_struct); + tmr_channel_value_set(TMR11, TMR_SELECT_CHANNEL_1, 0); + tmr_output_channel_buffer_enable(TMR11, TMR_SELECT_CHANNEL_1, FALSE); - tmr_output_channel_immediately_set(TMR11, TMR_SELECT_CHANNEL_1, FALSE); + tmr_output_channel_immediately_set(TMR11, TMR_SELECT_CHANNEL_1, FALSE); - tmr_counter_enable(TMR11, TRUE); + tmr_counter_enable(TMR11, TRUE); - /* add user code begin tmr11_init 2 */ + /* add user code begin tmr11_init 2 */ - /* add user code end tmr11_init 2 */ + /* add user code end tmr11_init 2 */ } /** @@ -776,69 +776,69 @@ void wk_tmr11_init(void) */ void wk_tmr12_init(void) { - /* add user code begin tmr12_init 0 */ + /* add user code begin tmr12_init 0 */ - /* add user code end tmr12_init 0 */ + /* add user code end tmr12_init 0 */ - gpio_init_type gpio_init_struct; - tmr_output_config_type tmr_output_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_init_type gpio_init_struct; + tmr_output_config_type tmr_output_struct; + gpio_default_para_init(&gpio_init_struct); - /* add user code begin tmr12_init 1 */ + /* add user code begin tmr12_init 1 */ - /* add user code end tmr12_init 1 */ + /* add user code end tmr12_init 1 */ - /* configure the CH1 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_14; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the CH1 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_14; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOB, &gpio_init_struct); - /* configure the CH2 pin */ - gpio_init_struct.gpio_pins = GPIO_PINS_15; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the CH2 pin */ + gpio_init_struct.gpio_pins = GPIO_PINS_15; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init(GPIOB, &gpio_init_struct); - /* configure counter settings */ - tmr_base_init(TMR12, 65535, 0); - tmr_cnt_dir_set(TMR12, TMR_COUNT_UP); - tmr_clock_source_div_set(TMR12, TMR_CLOCK_DIV1); - tmr_period_buffer_enable(TMR12, FALSE); + /* configure counter settings */ + tmr_base_init(TMR12, 65535, 0); + tmr_cnt_dir_set(TMR12, TMR_COUNT_UP); + tmr_clock_source_div_set(TMR12, TMR_CLOCK_DIV1); + tmr_period_buffer_enable(TMR12, FALSE); - /* configure channel 1 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR12, TMR_SELECT_CHANNEL_1, &tmr_output_struct); - tmr_channel_value_set(TMR12, TMR_SELECT_CHANNEL_1, 0); - tmr_output_channel_buffer_enable(TMR12, TMR_SELECT_CHANNEL_1, FALSE); + /* configure channel 1 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR12, TMR_SELECT_CHANNEL_1, &tmr_output_struct); + tmr_channel_value_set(TMR12, TMR_SELECT_CHANNEL_1, 0); + tmr_output_channel_buffer_enable(TMR12, TMR_SELECT_CHANNEL_1, FALSE); - /* configure channel 2 output settings */ - tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; - tmr_output_struct.oc_output_state = TRUE; - tmr_output_struct.occ_output_state = FALSE; - tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; - tmr_output_struct.oc_idle_state = FALSE; - tmr_output_struct.occ_idle_state = FALSE; - tmr_output_channel_config(TMR12, TMR_SELECT_CHANNEL_2, &tmr_output_struct); - tmr_channel_value_set(TMR12, TMR_SELECT_CHANNEL_2, 0); - tmr_output_channel_buffer_enable(TMR12, TMR_SELECT_CHANNEL_2, FALSE); + /* configure channel 2 output settings */ + tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_OFF; + tmr_output_struct.oc_output_state = TRUE; + tmr_output_struct.occ_output_state = FALSE; + tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH; + tmr_output_struct.oc_idle_state = FALSE; + tmr_output_struct.occ_idle_state = FALSE; + tmr_output_channel_config(TMR12, TMR_SELECT_CHANNEL_2, &tmr_output_struct); + tmr_channel_value_set(TMR12, TMR_SELECT_CHANNEL_2, 0); + tmr_output_channel_buffer_enable(TMR12, TMR_SELECT_CHANNEL_2, FALSE); - tmr_counter_enable(TMR12, TRUE); + tmr_counter_enable(TMR12, TRUE); - /* add user code begin tmr12_init 2 */ + /* add user code begin tmr12_init 2 */ - /* add user code end tmr12_init 2 */ + /* add user code end tmr12_init 2 */ } /** @@ -848,86 +848,86 @@ void wk_tmr12_init(void) */ void wk_can1_init(void) { - /* add user code begin can1_init 0 */ + /* add user code begin can1_init 0 */ - /* add user code end can1_init 0 */ + /* add user code end can1_init 0 */ - gpio_init_type gpio_init_struct; - can_base_type can_base_struct; - can_baudrate_type can_baudrate_struct; - can_filter_init_type can_filter_init_struct; + gpio_init_type gpio_init_struct; + can_base_type can_base_struct; + can_baudrate_type can_baudrate_struct; + can_filter_init_type can_filter_init_struct; - /* add user code begin can1_init 1 */ + /* add user code begin can1_init 1 */ - /* add user code end can1_init 1 */ + /* add user code end can1_init 1 */ - /*gpio-----------------------------------------------------------------------------*/ - gpio_default_para_init(&gpio_init_struct); + /*gpio-----------------------------------------------------------------------------*/ + gpio_default_para_init(&gpio_init_struct); - /* configure the CAN1 TX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_pins = GPIO_PINS_12; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the CAN1 TX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_pins = GPIO_PINS_12; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /* configure the CAN1 RX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_11; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &gpio_init_struct); + /* configure the CAN1 RX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_11; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &gpio_init_struct); - /*can_base_init--------------------------------------------------------------------*/ - can_default_para_init(&can_base_struct); - can_base_struct.mode_selection = CAN_MODE_COMMUNICATE; - can_base_struct.ttc_enable = FALSE; - can_base_struct.aebo_enable = TRUE; - can_base_struct.aed_enable = TRUE; - can_base_struct.prsf_enable = FALSE; - can_base_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED; - can_base_struct.mmssr_selection = CAN_SENDING_BY_ID; + /*can_base_init--------------------------------------------------------------------*/ + can_default_para_init(&can_base_struct); + can_base_struct.mode_selection = CAN_MODE_COMMUNICATE; + can_base_struct.ttc_enable = FALSE; + can_base_struct.aebo_enable = TRUE; + can_base_struct.aed_enable = TRUE; + can_base_struct.prsf_enable = FALSE; + can_base_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED; + can_base_struct.mmssr_selection = CAN_SENDING_BY_ID; - can_base_init(CAN1, &can_base_struct); + can_base_init(CAN1, &can_base_struct); - /*can_baudrate_setting-------------------------------------------------------------*/ - /*set baudrate = pclk/(baudrate_div *(1 + bts1_size + bts2_size))------------------*/ - can_baudrate_struct.baudrate_div = 24; /*value: 1~0xFFF*/ - can_baudrate_struct.rsaw_size = CAN_RSAW_1TQ; /*value: 1~4*/ - can_baudrate_struct.bts1_size = CAN_BTS1_8TQ; /*value: 1~16*/ - can_baudrate_struct.bts2_size = CAN_BTS2_1TQ; /*value: 1~8*/ - can_baudrate_set(CAN1, &can_baudrate_struct); + /*can_baudrate_setting-------------------------------------------------------------*/ + /*set baudrate = pclk/(baudrate_div *(1 + bts1_size + bts2_size))------------------*/ + can_baudrate_struct.baudrate_div = 24; /*value: 1~0xFFF*/ + can_baudrate_struct.rsaw_size = CAN_RSAW_1TQ; /*value: 1~4*/ + can_baudrate_struct.bts1_size = CAN_BTS1_8TQ; /*value: 1~16*/ + can_baudrate_struct.bts2_size = CAN_BTS2_1TQ; /*value: 1~8*/ + can_baudrate_set(CAN1, &can_baudrate_struct); - /*can_filter_0_config--------------------------------------------------------------*/ - can_filter_init_struct.filter_activate_enable = TRUE; - can_filter_init_struct.filter_number = 0; - can_filter_init_struct.filter_fifo = CAN_FILTER_FIFO0; - can_filter_init_struct.filter_bit = CAN_FILTER_16BIT; - can_filter_init_struct.filter_mode = CAN_FILTER_MODE_ID_MASK; - /*Standard identifier + Mask Mode + Data/Remote frame: id/mask 11bit --------------*/ - can_filter_init_struct.filter_id_high = 0x0 << 5; - can_filter_init_struct.filter_id_low = 0x0 << 5; - can_filter_init_struct.filter_mask_high = 0x0 << 5; - can_filter_init_struct.filter_mask_low = 0x0 << 5; + /*can_filter_0_config--------------------------------------------------------------*/ + can_filter_init_struct.filter_activate_enable = TRUE; + can_filter_init_struct.filter_number = 0; + can_filter_init_struct.filter_fifo = CAN_FILTER_FIFO0; + can_filter_init_struct.filter_bit = CAN_FILTER_16BIT; + can_filter_init_struct.filter_mode = CAN_FILTER_MODE_ID_MASK; + /*Standard identifier + Mask Mode + Data/Remote frame: id/mask 11bit --------------*/ + can_filter_init_struct.filter_id_high = 0x0 << 5; + can_filter_init_struct.filter_id_low = 0x0 << 5; + can_filter_init_struct.filter_mask_high = 0x0 << 5; + can_filter_init_struct.filter_mask_low = 0x0 << 5; - can_filter_init(CAN1, &can_filter_init_struct); + can_filter_init(CAN1, &can_filter_init_struct); - /** - * Users need to configure CAN1 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding CAN1 interrupt. - * --can_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void USBFS_L_CAN1_RX0_IRQHandler(void) - */ + /** + * Users need to configure CAN1 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding CAN1 interrupt. + * --can_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void USBFS_L_CAN1_RX0_IRQHandler(void) + */ - /*can1 rx0 interrupt config--------------------------------------------------------*/ - // can_interrupt_enable(CAN1, CAN_RF0MIEN_INT, TRUE); + /*can1 rx0 interrupt config--------------------------------------------------------*/ + // can_interrupt_enable(CAN1, CAN_RF0MIEN_INT, TRUE); - /* add user code begin can1_init 2 */ - can_interrupt_enable(CAN1, CAN_RF0MIEN_INT, TRUE); - /* add user code end can1_init 2 */ + /* add user code begin can1_init 2 */ + can_interrupt_enable(CAN1, CAN_RF0MIEN_INT, TRUE); + /* add user code end can1_init 2 */ } /** @@ -937,86 +937,86 @@ void wk_can1_init(void) */ void wk_can2_init(void) { - /* add user code begin can2_init 0 */ + /* add user code begin can2_init 0 */ - /* add user code end can2_init 0 */ + /* add user code end can2_init 0 */ - gpio_init_type gpio_init_struct; - can_base_type can_base_struct; - can_baudrate_type can_baudrate_struct; - can_filter_init_type can_filter_init_struct; + gpio_init_type gpio_init_struct; + can_base_type can_base_struct; + can_baudrate_type can_baudrate_struct; + can_filter_init_type can_filter_init_struct; - /* add user code begin can2_init 1 */ + /* add user code begin can2_init 1 */ - /* add user code end can2_init 1 */ + /* add user code end can2_init 1 */ - /*gpio-----------------------------------------------------------------------------*/ - gpio_default_para_init(&gpio_init_struct); + /*gpio-----------------------------------------------------------------------------*/ + gpio_default_para_init(&gpio_init_struct); - /* configure the CAN2 TX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_MUX; - gpio_init_struct.gpio_pins = GPIO_PINS_13; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the CAN2 TX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_MUX; + gpio_init_struct.gpio_pins = GPIO_PINS_13; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOB, &gpio_init_struct); - /* configure the CAN2 RX pin */ - gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; - gpio_init_struct.gpio_pins = GPIO_PINS_12; - gpio_init_struct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOB, &gpio_init_struct); + /* configure the CAN2 RX pin */ + gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; + gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; + gpio_init_struct.gpio_pins = GPIO_PINS_12; + gpio_init_struct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOB, &gpio_init_struct); - /*can_base_init--------------------------------------------------------------------*/ - can_default_para_init(&can_base_struct); - can_base_struct.mode_selection = CAN_MODE_COMMUNICATE; - can_base_struct.ttc_enable = FALSE; - can_base_struct.aebo_enable = TRUE; - can_base_struct.aed_enable = TRUE; - can_base_struct.prsf_enable = FALSE; - can_base_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED; - can_base_struct.mmssr_selection = CAN_SENDING_BY_ID; + /*can_base_init--------------------------------------------------------------------*/ + can_default_para_init(&can_base_struct); + can_base_struct.mode_selection = CAN_MODE_COMMUNICATE; + can_base_struct.ttc_enable = FALSE; + can_base_struct.aebo_enable = TRUE; + can_base_struct.aed_enable = TRUE; + can_base_struct.prsf_enable = FALSE; + can_base_struct.mdrsel_selection = CAN_DISCARDING_FIRST_RECEIVED; + can_base_struct.mmssr_selection = CAN_SENDING_BY_ID; - can_base_init(CAN2, &can_base_struct); + can_base_init(CAN2, &can_base_struct); - /*can_baudrate_setting-------------------------------------------------------------*/ - /*set baudrate = pclk/(baudrate_div *(1 + bts1_size + bts2_size))------------------*/ - can_baudrate_struct.baudrate_div = 24; /*value: 1~0xFFF*/ - can_baudrate_struct.rsaw_size = CAN_RSAW_1TQ; /*value: 1~4*/ - can_baudrate_struct.bts1_size = CAN_BTS1_8TQ; /*value: 1~16*/ - can_baudrate_struct.bts2_size = CAN_BTS2_1TQ; /*value: 1~8*/ - can_baudrate_set(CAN2, &can_baudrate_struct); + /*can_baudrate_setting-------------------------------------------------------------*/ + /*set baudrate = pclk/(baudrate_div *(1 + bts1_size + bts2_size))------------------*/ + can_baudrate_struct.baudrate_div = 24; /*value: 1~0xFFF*/ + can_baudrate_struct.rsaw_size = CAN_RSAW_1TQ; /*value: 1~4*/ + can_baudrate_struct.bts1_size = CAN_BTS1_8TQ; /*value: 1~16*/ + can_baudrate_struct.bts2_size = CAN_BTS2_1TQ; /*value: 1~8*/ + can_baudrate_set(CAN2, &can_baudrate_struct); - /*can_filter_0_config--------------------------------------------------------------*/ - can_filter_init_struct.filter_activate_enable = TRUE; - can_filter_init_struct.filter_number = 0; - can_filter_init_struct.filter_fifo = CAN_FILTER_FIFO0; - can_filter_init_struct.filter_bit = CAN_FILTER_16BIT; - can_filter_init_struct.filter_mode = CAN_FILTER_MODE_ID_MASK; - /*Standard identifier + Mask Mode + Data/Remote frame: id/mask 11bit --------------*/ - can_filter_init_struct.filter_id_high = 0x0 << 5; - can_filter_init_struct.filter_id_low = 0x0 << 5; - can_filter_init_struct.filter_mask_high = 0x0 << 5; - can_filter_init_struct.filter_mask_low = 0x0 << 5; + /*can_filter_0_config--------------------------------------------------------------*/ + can_filter_init_struct.filter_activate_enable = TRUE; + can_filter_init_struct.filter_number = 0; + can_filter_init_struct.filter_fifo = CAN_FILTER_FIFO0; + can_filter_init_struct.filter_bit = CAN_FILTER_16BIT; + can_filter_init_struct.filter_mode = CAN_FILTER_MODE_ID_MASK; + /*Standard identifier + Mask Mode + Data/Remote frame: id/mask 11bit --------------*/ + can_filter_init_struct.filter_id_high = 0x0 << 5; + can_filter_init_struct.filter_id_low = 0x0 << 5; + can_filter_init_struct.filter_mask_high = 0x0 << 5; + can_filter_init_struct.filter_mask_low = 0x0 << 5; - can_filter_init(CAN2, &can_filter_init_struct); + can_filter_init(CAN2, &can_filter_init_struct); - /** - * Users need to configure CAN2 interrupt functions according to the actual application. - * 1. Call the below function to enable the corresponding CAN2 interrupt. - * --can_interrupt_enable(...) - * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. - * --void CAN2_RX0_IRQHandler(void) - */ + /** + * Users need to configure CAN2 interrupt functions according to the actual application. + * 1. Call the below function to enable the corresponding CAN2 interrupt. + * --can_interrupt_enable(...) + * 2. Add the user's interrupt handler code into the below function in the at32f403a_407_int.c file. + * --void CAN2_RX0_IRQHandler(void) + */ - /*can2 rx0 interrupt config--------------------------------------------------------*/ - // can_interrupt_enable(CAN2, CAN_RF0MIEN_INT, TRUE); + /*can2 rx0 interrupt config--------------------------------------------------------*/ + // can_interrupt_enable(CAN2, CAN_RF0MIEN_INT, TRUE); - /* add user code begin can2_init 2 */ - can_interrupt_enable(CAN2, CAN_RF0MIEN_INT, TRUE); - /* add user code end can2_init 2 */ + /* add user code begin can2_init 2 */ + can_interrupt_enable(CAN2, CAN_RF0MIEN_INT, TRUE); + /* add user code end can2_init 2 */ } /** @@ -1026,58 +1026,58 @@ void wk_can2_init(void) */ void wk_adc1_init(void) { - /* add user code begin adc1_init 0 */ + /* add user code begin adc1_init 0 */ - /* add user code end adc1_init 0 */ + /* add user code end adc1_init 0 */ - gpio_init_type gpio_init_struct; - adc_base_config_type adc_base_struct; + gpio_init_type gpio_init_struct; + adc_base_config_type adc_base_struct; - gpio_default_para_init(&gpio_init_struct); + gpio_default_para_init(&gpio_init_struct); - /* add user code begin adc1_init 1 */ + /* add user code begin adc1_init 1 */ - /* add user code end adc1_init 1 */ + /* add user code end adc1_init 1 */ - /*gpio--------------------------------------------------------------------*/ - /* configure the IN0 pin */ - gpio_init_struct.gpio_mode = GPIO_MODE_ANALOG; - gpio_init_struct.gpio_pins = GPIO_PINS_0; - gpio_init(GPIOA, &gpio_init_struct); + /*gpio--------------------------------------------------------------------*/ + /* configure the IN0 pin */ + gpio_init_struct.gpio_mode = GPIO_MODE_ANALOG; + gpio_init_struct.gpio_pins = GPIO_PINS_0; + gpio_init(GPIOA, &gpio_init_struct); - crm_adc_clock_div_set(CRM_ADC_DIV_6); + crm_adc_clock_div_set(CRM_ADC_DIV_6); - /*adc_common_settings-------------------------------------------------------------*/ - adc_combine_mode_select(ADC_INDEPENDENT_MODE); + /*adc_common_settings-------------------------------------------------------------*/ + adc_combine_mode_select(ADC_INDEPENDENT_MODE); - /*adc_settings--------------------------------------------------------------------*/ - adc_base_default_para_init(&adc_base_struct); - adc_base_struct.sequence_mode = FALSE; - adc_base_struct.repeat_mode = FALSE; - adc_base_struct.data_align = ADC_RIGHT_ALIGNMENT; - adc_base_struct.ordinary_channel_length = 1; - adc_base_config(ADC1, &adc_base_struct); + /*adc_settings--------------------------------------------------------------------*/ + adc_base_default_para_init(&adc_base_struct); + adc_base_struct.sequence_mode = FALSE; + adc_base_struct.repeat_mode = FALSE; + adc_base_struct.data_align = ADC_RIGHT_ALIGNMENT; + adc_base_struct.ordinary_channel_length = 1; + adc_base_config(ADC1, &adc_base_struct); - /* adc_ordinary_conversionmode-------------------------------------------- */ - adc_ordinary_channel_set(ADC1, ADC_CHANNEL_0, 1, ADC_SAMPLETIME_1_5); + /* adc_ordinary_conversionmode-------------------------------------------- */ + adc_ordinary_channel_set(ADC1, ADC_CHANNEL_0, 1, ADC_SAMPLETIME_1_5); - adc_ordinary_conversion_trigger_set(ADC1, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE); + adc_ordinary_conversion_trigger_set(ADC1, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE); - adc_ordinary_part_mode_enable(ADC1, FALSE); + adc_ordinary_part_mode_enable(ADC1, FALSE); - adc_enable(ADC1, TRUE); + adc_enable(ADC1, TRUE); - /* adc calibration-------------------------------------------------------- */ - adc_calibration_init(ADC1); - while (adc_calibration_init_status_get(ADC1)) - ; - adc_calibration_start(ADC1); - while (adc_calibration_status_get(ADC1)) - ; + /* adc calibration-------------------------------------------------------- */ + adc_calibration_init(ADC1); + while (adc_calibration_init_status_get(ADC1)) + ; + adc_calibration_start(ADC1); + while (adc_calibration_status_get(ADC1)) + ; - /* add user code begin adc1_init 2 */ + /* add user code begin adc1_init 2 */ - /* add user code end adc1_init 2 */ + /* add user code end adc1_init 2 */ } /* add user code begin 1 */