【RainbowLink USB 协议转换器】4、RS232测试
[复制链接]
一、说明
本次进行RS232测试。此次使用一块GD32的开发板与RainbowLink进行RS232通讯测试。
连接图如下:
二、RS232测试
采用跟之前的测试类似,使用开发板DMA连续不间断的循环发送,看看有没有乱码的情况。
1、波特率115200bps测试
测试下来肯定是毫无压力。
2、波特率1000000bps测试
没有异常
3、2000000bps测试
很遗憾,测试出现了大量的乱码。
分析原因,可能是232转换芯片的问题。无论是开发板上的MAX3232芯片还是RanbowLink的3peak 的3232E芯片,手册上标识的最大数据传输速率都是250kbps,超过了这个值可能就会不稳定或者出现通讯问题。由此看来,RS232可能不适合在高速率下通讯。1M可能已经是极限了。当然,也不排除有一些高速的232转换芯片,能力有限,不得而知。
三、开发板测试代码
/*!
\file main.c
\brief GPIO running led demo
\version 2023-12-31, V1.6.0, demo for GD32E103
*/
#include "gd32e10x.h"
#include "systick.h"
#include "led.h"
#include "usart.h"
/*!
\brief main function
\param[in] none
\param[out] none
\retval none
*/
int main(void)
{
systick_config();
led_init();
/* configure EVAL_COM0 */
gd_eval_com_init(EVAL_COM0);
/* configure USART DMA */
usart_dma_config();
/* enable USART0 DMA channel transmission and reception */
dma_channel_enable(DMA0, DMA_CH3);
// dma_channel_enable(DMA0, DMA_CH4);
/* USART DMA enable for transmission and reception */
usart_dma_transmit_config(USART0, USART_TRANSMIT_DMA_ENABLE);
// usart_dma_receive_config(USART0, USART_RECEIVE_DMA_ENABLE);
/* wait until USART0 TX DMA0 channel transfer complete */
while(RESET == dma_flag_get(DMA0, DMA_CH3, DMA_INTF_FTFIF)){
}
// /* wait until USART0 RX DMA0 channel receive complete */
// while(RESET == dma_flag_get(DMA0, DMA_CH4, DMA_INTF_FTFIF)){
// }
while(1){
/* turn on LED2 */
gpio_bit_set(LED2_PORT, LED2_PIN);
/* turn on LED3 */
gpio_bit_set(LED3_PORT, LED3_PIN);
/* turn on LED4 */
gpio_bit_set(LED4_PORT, LED4_PIN);
/* turn on LED5 */
gpio_bit_set(LED5_PORT, LED5_PIN);
delay_1ms(1000);
/* turn off LEDs */
gpio_bit_reset(LED2_PORT, LED2_PIN);
gpio_bit_reset(LED3_PORT, LED3_PIN);
gpio_bit_reset(LED4_PORT, LED4_PIN);
gpio_bit_reset(LED5_PORT, LED5_PIN);
/* insert 200 ms delay */
delay_1ms(1000);
}
}
以上就是本次的RS232的测试,谢谢阅读。
|