/*--------------------------------------- - WeAct Studio Official Link - taobao: weactstudio.taobao.com - aliexpress: weactstudio.aliexpress.com - github: github.com/WeActTC - gitee: gitee.com/WeAct-TC - blog: www.weact-tc.cn ---------------------------------------*/ #include "board.h" #include void board_usart0_init(void) { /* enable GPIO clock */ rcu_periph_clock_enable(RCU_GPIOA); /* enable USART clock */ rcu_periph_clock_enable(RCU_USART0); /* connect port to USARTx_Tx */ gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); /* connect port to USARTx_Rx */ gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10); /* USART configure */ usart_deinit(USART0); usart_baudrate_set(USART0, 115200U); usart_word_length_set(USART0, USART_WL_8BIT); usart_stop_bit_set(USART0, USART_STB_1BIT); usart_parity_config(USART0, USART_PM_NONE); usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE); usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE); usart_receive_config(USART0, USART_RECEIVE_ENABLE); usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); usart_enable(USART0); } /* retarget the C library printf function to the USART */ int fputc(int ch, FILE *f) { usart_data_transmit(USART0, (uint8_t)ch); while (RESET == usart_flag_get(USART0, USART_FLAG_TBE)) ; return ch; } void board_led_init(void) { /* enable the led clock */ rcu_periph_clock_enable(RCU_GPIOB); /* configure led GPIO port */ gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2); GPIO_BC(GPIOB) = GPIO_PIN_2; } void board_led_on(void) { GPIO_BOP(GPIOB) = GPIO_PIN_2; } void board_led_off(void) { GPIO_BC(GPIOB) = GPIO_PIN_2; } void board_led_toggle(void) { gpio_bit_write(GPIOB, GPIO_PIN_2, (bit_status)(1 - gpio_input_bit_get(GPIOB, GPIO_PIN_2))); } void board_button_init(void) { /* enable the button clock */ rcu_periph_clock_enable(RCU_GPIOA); rcu_periph_clock_enable(RCU_AF); /* configure button pin as input */ gpio_init(GPIOA, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, GPIO_PIN_0); } uint8_t board_button_state_get(void) { return gpio_input_bit_get(GPIOA, GPIO_PIN_0); }