#include "drv_usart.h" void usart_init(void) { usart_colok_config(); usart_gpio_config(); } void usart_colok_config(void) { rcu_periph_clock_enable(USART_GPIO_CLK);//使能引脚时钟 rcu_periph_clock_enable(USART_PERIPH_CLK);//使能外设时钟 } void usart_gpio_config(void) { // 配置GPIO gpio_af_set(USART_GPIO_PORT, USART_GPIO_AF, USART_TX_PIN); gpio_af_set(USART_GPIO_PORT, USART_GPIO_AF, USART_RX_PIN); // gpio_mode_set(USART_GPIO_PORT, USART_GPIO_AF, GPIO_PUPD_PULLUP, USART_TX_PIN | USART_RX_PIN); gpio_mode_set(USART_GPIO_PORT, USART_GPIO_AF, GPIO_PUPD_NONE, USART_TX_PIN | USART_RX_PIN); gpio_output_options_set(USART_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USART_TX_PIN | USART_RX_PIN); // 配置USART usart_deinit(USART_PERIPH); usart_baudrate_set(USART_PERIPH, USART_BAUD_RATE); usart_receive_config(USART_PERIPH, USART_RECEIVE_ENABLE); usart_transmit_config(USART_PERIPH, USART_TRANSMIT_ENABLE); // 启用USART usart_enable(USART_PERIPH); // 配置中断(如果需要) // nvic_irq_enable(config->irq_type, 0, 0); // usart_interrupt_enable(config->usart_periph, USART_INT_RBNE); }