404|0

553

帖子

3

TA的资源

纯净的硅(初级)

【RainbowLink USB 协议转换器】4、RS232测试 [复制链接]

一、说明

本次进行RS232测试。此次使用一块GD32的开发板与RainbowLink进行RS232通讯测试。

连接图如下:

1.jpg

二、RS232测试

采用跟之前的测试类似,使用开发板DMA连续不间断的循环发送,看看有没有乱码的情况。

1、波特率115200bps测试

测试下来肯定是毫无压力。

image.png  

2、波特率1000000bps测试

没有异常

image.png  

3、2000000bps测试

很遗憾,测试出现了大量的乱码。

image.png  

分析原因,可能是232转换芯片的问题。无论是开发板上的MAX3232芯片还是RanbowLink的3peak 的3232E芯片,手册上标识的最大数据传输速率都是250kbps,超过了这个值可能就会不稳定或者出现通讯问题。由此看来,RS232可能不适合在高速率下通讯。1M可能已经是极限了。当然,也不排除有一些高速的232转换芯片,能力有限,不得而知。

image.png  

三、开发板测试代码

/*!
    \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的测试,谢谢阅读。


回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表