完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
购买的GD32E507V-START 开办版 2 使用提供demo程序 GD32E50x_Demo_Suites_V1.3.1\GD32E507V_START_Demo_Suites\Projects\04_USART_HyperTerminal_Interrupt
USART0的配置: static void usart_config(void) { /* enable GPIO clock */ rcu_periph_clock_enable(RCU_GPIOB); /* enable USART clock */ rcu_periph_clock_enable(RCU_USART0); /* enable AF clock */ rcu_periph_clock_enable(RCU_AF); /* remap USART0_TX to PB6, USART0_RX to PB7 */ gpio_pin_remap_config(GPIO_USART0_REMAP, ENABLE); /* connect port to USARTx_Tx */ gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6); /* connect port to USARTx_Rx */ gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_7); /* USART configure */ usart_deinit(USART0); usart_word_length_set(USART0, USART_WL_8BIT); usart_stop_bit_set(USART0, USART_STB_1BIT); usart_parity_config(USART0, USART_PM_NONE); usart_baudrate_set(USART0, 115200U); usart_receive_config(USART0, USART_RECEIVE_ENABLE); usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); usart_enable(USART0); } 3 把demo中USART0:PB_06 接到9针串口线的2脚 PB_07 接到9针串口线的3脚 9针串口线的5脚接到开发板的GND 4 串口调试助手:收到数据是乱码 串口调试助手设置:115200 8位数据位 1位停止位 无校验位 无流控 请教下各位大佬,为啥是乱码? 发送数据是:0x00,......,0xFF; 收到数据是:00 FD FB F9 F7 F5 F1,......01 80 |
|
相关推荐
1个回答
|
|
ble(RCU_AF);
/* configure GPIO pin */ gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8 | GPIO_PIN_9); /* configure USART0 */ usart_deinit(USART0); usart_baudrate_set(USART0, 115200); 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_interrupt_enable(USART0, USART_INT_RBNE); usart_dma_enable(USART0, USART_DMA_RECEIVE, DISABLE); usart_enable(USART0); NVIC_SetPriority(USART0_IRQn, 0); NVIC_EnableIRQ(USART0_IRQn); } 在您的代码中,USART0的配置看起来是正确的。但是,如果您在接收数据时遇到乱码,可能的原因有以下几点: 1. 波特率不匹配:确保您的GD32E507V-START开发板和发送数据的设备使用相同的波特率(在您的代码中为115200)。如果波特率不匹配,可能会导致接收到的数据出现乱码。 2. 串口连接问题:检查您的开发板和发送数据的设备之间的串口连接是否正确。确保TX和RX引脚正确连接,并且没有短路或断路。 3. 串口引脚电平不匹配:确保您的开发板和发送数据的设备使用相同的串口电平(通常是3.3V或5V)。如果电平不匹配,可能会导致接收到的数据出现乱码。 4. 串口中断处理函数问题:检查您的中断处理函数是否正确处理接收到的数据。确保在中断处理函数中正确读取USART接收缓冲区的数据,并将其存储在适当的变量中。 5. 串口初始化顺序问题:确保在初始化GPIO引脚和USART之前,已经正确配置了RCU时钟。在您的代码中,您已经正确配置了RCU时钟,但是如果在其他地方有错误的初始化顺序,可能会导致问题。 6. 串口DMA配置问题:虽然您的代码中禁用了DMA,但如果您在其他地方启用了DMA,确保正确配置了DMA通道和中断。 7. 软件滤波器问题:在某些情况下,软件滤波器可能会导致接收到的数据出现乱码。尝试禁用软件滤波器或调整其参数,看看是否解决了问题。 8. 硬件问题:如果以上方法都无法解决问题,可能是您的开发板或发送数据的设备存在硬件问题。尝试使用其他开发板或设备,看看问题是否仍然存在。 建议您按照上述步骤逐一排查问题,找到导致乱码的原因,并进行相应的修复。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 14:45 , Processed in 0.485223 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号