本帖最后由 809108577 于 2021-5-10 09:11 编辑  
 
程序使用USART0发送数据一切正常,但是用USART1发送数据时,通过电脑接收显示出现乱码,发送0X55,接收正常,其他的比如0X25接收显示0x2D,不知道有哪位大哥能帮忙分析一下,我感觉是不是布线干扰了,程序见附件,各位大神帮忙看看,或者验证一下,小弟拜谢,在线等回复 
1、串口配置 
void USART1_Init(void) 
{ 
        rcu_periph_clock_enable(RCU_GPIOA); 
        rcu_periph_clock_enable(USART1_CLOCK); 
        gpio_af_set(USART1_PORT, GPIO_AF_1, USART1_TX_PIN); 
        gpio_mode_set(USART1_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, USART1_TX_PIN); 
        gpio_output_options_set(USART1_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USART1_TX_PIN); 
        gpio_af_set(USART1_PORT, GPIO_AF_1, USART1_RX_PIN); 
        gpio_mode_set(USART1_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, USART1_RX_PIN); 
        gpio_output_options_set(USART1_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USART1_RX_PIN); 
        usart_deinit(USART1);         
        usart_baudrate_set(USART1,115200U);         
        usart_transmit_config(USART1, USART_TRANSMIT_ENABLE);         
        usart_receive_config(USART1, USART_RECEIVE_ENABLE);         
        usart_enable(USART1);         
} 
 
2、串口发送函数 
void UART_SendChar(uint32_t usart_periph,uint8_t dat)  
{ 
        //usart_flag_clear(usart_periph,USART_FLAG_TC); 
        usart_data_transmit(usart_periph, dat); 
        while(RESET == usart_flag_get(usart_periph, USART_FLAG_TBE)); 
        delay_1ms(1); 
        //usart_flag_clear(usart_periph,USART_FLAG_TC); 
} 
 
 
 |