本帖最后由 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);
}
|