rcu_periph_clock_enable(RCU_GPIOD); // 使能GPIOd时钟
rcu_periph_clock_enable(RCU_USART2); // 使能串口时钟
gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_8 | GPIO_PIN_9);
gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_8); // GPIO 模式设置
gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8); // 输出参数设置
gpio_mode_set(GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_9); // GPIO 模式设置
gpio_output_options_set(GPIOD, GPIO_PUPD_NONE, GPIO_OSPEED_50MHZ, GPIO_PIN_9); // 输出参数设置
usart_deinit(USART2); // 串口复位
usart_word_length_set(USART2, USART_WL_8BIT); // 字长
usart_stop_bit_set(USART2, USART_STB_1BIT); // 停止位
usart_parity_config(USART2, USART_PM_NONE);
usart_baudrate_set(USART2, 115200U); // 波特率
usart_receive_config(USART2, USART_RECEIVE_ENABLE); // 接收使能
usart_transmit_config(USART2, USART_TRANSMIT_ENABLE); // 发送使能
usart_hardware_flow_rts_config(USART2, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART2, USART_CTS_DISABLE);
usart_enable(USART2); // 串口使能
nvic_irq_enable(USART2_IRQn, 0, 0); // 使能串口中断
usart_interrupt_enable(USART2, USART_INT_RBNE); // 接收中断使能
问题是 无法进接收中断。这是什么问题 急急急。
|