一块GD32F105芯片的主板。怎么找RXD和TXD串口

一块GD32F105芯片的主板。怎么找RXD和TXD串口。boot口找到了。找不到rx和tx口。没法连接主板。

img


现在找到引脚了,用软件连接不上。哪里的问题?

img

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

通常,GD32F105芯片的串口是通过芯片引脚连接到主板上的。在主板上,串口通常会用带有标记的排针或连接器进行标识。

你可以查看主板上的文档或规格表,以找到RXD和TXD串口的位置。如果没有明确的标记或文档,你可以通过以下步骤来查找串口:

1、找到GD32F105芯片的引脚图。通常,芯片制造商会提供这个图,你也可以在GD32F105的数据手册中找到它。
2、找到串口的引脚。RXD和TXD通常都是芯片引脚中的一对,你可以在引脚图上查找这一对引脚。根据GD32F105的数据手册,USART0的RX引脚为PA10,TX引脚为PA9;USART1的RX引脚为PA3,TX引脚为PA2。
3、找到主板上连接到这些引脚的组件。通常,串口引脚会连接到主板上的一个排针或连接器上。你可以使用万用表等工具来跟踪这些引脚,并找到它们连接到的组件。
4、确认找到的组件是串口。在找到连接到引脚的组件后,你需要确认这些组件是用于串口通信的。在主板文档或规格表中查找这些组件的信息,或者使用示波器等工具来确认它们的通信方式。

总之,要找到RXD和TXD串口,你需要查看主板文档或规格表,或者使用引脚图和工具来追踪芯片引脚的连接,并确认连接到这些引脚的组件是用于串口通信的。
通常情况下,寻找主板上的RXD和TXD串口,可以按照以下步骤进行:

1、查找主板的原理图,寻找串口连接点。如果有原理图,可以查看芯片的引脚分配,找到对应的引脚连接点。
2、如果没有原理图,可以使用万用表或示波器等仪器,在主板上进行测试。具体方法是找到芯片上的RXD和TXD引脚,然后测量它们所连接的电路板上的引脚或焊盘,找到与之对应的引脚或焊盘。
3、如果测试不成功,可以尝试使用串口助手等工具进行调试,通过发送数据进行观察,找到串口的RXD和TXD引脚。
4、如果以上方法均未能找到串口,可以考虑查看主板的文档或联系主板制造商,了解串口的具体位置和连接方式。

需要注意的是,在寻找串口时要注意安全,避免对主板造成损坏。

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

该回答引用ChatGPT
在这个主板上找到RXD和TXD串口需要先了解一下GD32F105芯片的引脚分配。根据GD32F105芯片的数据手册,可以找到UART0的引脚分配如下:
| 引脚名称 | 引脚号 | 功能 |
| -------- | ------ | ---- |
| PA9 | 37 | TXD0 |
| PA10 | 38 | RXD0 |
因此,我们可以在主板上找到PA9和PA10这两个引脚,从而找到RXD和TXD串口。
根据主板的照片,可以看到PA9和PA10分别连接到了USB转串口芯片CH340G的TXD和RXD引脚上。因此,我们可以通过USB转串口芯片来连接主板。
以下是使用Python的pyserial库来连接主板的示例代码:
python
import serial
ser = serial.Serial('COM3', 115200) # 根据实际情况修改串口号和波特率
while True:
data = ser.readline()
print(data.decode('utf-8'))

在运行代码之前,需要先安装pyserial库。可以使用以下命令来安装:

pip install pyserial

运行代码后,可以通过串口来与主板进行通信。

看原理图不就找到了吗

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要找到RX和TX串口,可以通过查看GD32F105芯片的原理图和数据手册,查找串口引脚的接口。

一般情况下,RX和TX串口引脚的接口是UART(通用异步收发传输器)接口。在GD32F105芯片的数据手册中可以查找到UART的引脚定义。

例如,在GD32F105芯片的手册中,UART0的引脚定义如下:

  • PA9: UART0_TX
  • PA10: UART0_RX

其中,PA9是UART0的发送端,也就是TX端,PA10是UART0的接收端,也就是RX端。

因此,要找到GD32F105芯片上的RX和TX串口,可以通过查找引脚定义,找到相应的引脚。

下面是一个简单的代码示例,展示了如何使用Python和pyserial库连接GD32F105芯片的串口:

import serial

ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)

ser.write(b'Hello, world!')

response = ser.readline()

print(response)

在这个示例中,我们通过串口连接GD32F105芯片,并向串口发送“Hello, world!”字符串。然后,我们从串口读取响应,并将其打印到控制台上。

注意,在使用串口连接GD32F105芯片之前,你需要安装相应的串口驱动程序,并根据你的实际情况调整串口的参数。
如果我的回答解决了您的问题,请采纳!

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:解决GD32F105串口发送乱码问题
  • 除此之外, 这篇博客: 【超级详细教程】给 GD32F10x 系列建立keil工程中的 建立 GD32F10X 对应的Keil 工程(以GD32F103C8T6为例) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 新建文件夹如下:
      在这里插入图片描述

    • 新建 keil 的空工程,存放在上图中的 KeilProject 文件夹
      在这里插入图片描述

    • 选择对应芯片
      在这里插入图片描述

    • 新建工程下的目录如下
      在这里插入图片描述

    • 添加 CMSIS Cortex-M3 Device Peripheral Access Layer Source File,对于所有 GD32F10x 系列都有效。
      在这里插入图片描述

    • 添加芯片启动文件(因为GD32F103C8T6是中等容量,所以选择 startup_gd32f10x_md.s,别的芯片按照其容量选择)
      在这里插入图片描述

    • 添加 GB32F10x 标准库文件
      在这里插入图片描述

    • 从标准库中的模板工程拷贝如下器个文件到 User 文件夹。(???有标准模板,我在这折腾啥?算了就当熟悉结构吧)
      在这里插入图片描述

    • 将上述文件中的 .c 文件加入工程。
      在这里插入图片描述

    • 标准库需要增加两个宏定义才能使用:USE_STDPERIPH_DRIVER,GD32F10X_MD
      在这里插入图片描述

    • 添加头文件路径:
      在这里插入图片描述

    • 如果你的板子没有外部晶振,得配置成内部晶振,如下操作:
      在这里插入图片描述

    • 将 main 函数修改成如下代码:

    /*!
        \file    main.c
        \brief   led spark with systick, USART print and key example
    
        \version 2014-12-26, V1.0.0, firmware for GD32F10x
        \version 2017-06-20, V2.0.0, firmware for GD32F10x
        \version 2018-07-31, V2.1.0, firmware for GD32F10x
        \version 2020-09-30, V2.2.0, firmware for GD32F10x
    */
    
    /*
        Copyright (c) 2020, GigaDevice Semiconductor Inc.
    
        Redistribution and use in source and binary forms, with or without modification, 
    are permitted provided that the following conditions are met:
    
        1. Redistributions of source code must retain the above copyright notice, this 
           list of conditions and the following disclaimer.
        2. Redistributions in binary form must reproduce the above copyright notice, 
           this list of conditions and the following disclaimer in the documentation 
           and/or other materials provided with the distribution.
        3. Neither the name of the copyright holder nor the names of its contributors 
           may be used to endorse or promote products derived from this software without 
           specific prior written permission.
    
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
    IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
    OF SUCH DAMAGE.
    */
    
    #include "gd32f10x.h"
    #include "systick.h"
    #include <stdio.h>
    #include "main.h"
    #include "gd32f10x_eval.h"
    
    /*!
        \brief      toggle the led every 500ms
        \param[in]  none
        \param[out] none
        \retval     none
    */
    void led_spark(void)
    {
        static __IO uint32_t timingdelaylocal = 0U;
    
        if(timingdelaylocal){
    
            if(timingdelaylocal < 500U){
                gd_eval_led_on(LED2);
            }else{
                gd_eval_led_off(LED2);
            }
    
            timingdelaylocal--;
        }else{
            timingdelaylocal = 1000U;
        }
    }
    
    /*!
        \brief      main function
        \param[in]  none
        \param[out] none
        \retval     none
    */
    
    int main(void)
    {
        /* configure systick */
        systick_config();
        /* initilize the LEDs, USART and key */
        gd_eval_led_init(LED2); 
        gd_eval_led_init(LED3); 
        gd_eval_led_init(LED4);
        gd_eval_com_init(EVAL_COM0);
        gd_eval_key_init(KEY_WAKEUP, KEY_MODE_GPIO);
        
        /* print out the clock frequency of system, AHB, APB1 and APB2 */
        printf("\r\nCK_SYS is %d", rcu_clock_freq_get(CK_SYS));
        printf("\r\nCK_AHB is %d", rcu_clock_freq_get(CK_AHB));
        printf("\r\nCK_APB1 is %d", rcu_clock_freq_get(CK_APB1));
        printf("\r\nCK_APB2 is %d", rcu_clock_freq_get(CK_APB2));
    
        while(1){
            if(RESET == gd_eval_key_state_get(KEY_WAKEUP)){
                gd_eval_led_on(LED3);
                delay_1ms(500);
                gd_eval_led_off(LED3);
                gd_eval_led_toggle(LED4);
            }
        }
    }
    
    /* retarget the C library printf function to the USART */
    int fputc(int ch, FILE *f)
    {
        usart_data_transmit(EVAL_COM0, (uint8_t)ch);
        while(RESET == usart_flag_get(EVAL_COM0, USART_FLAG_TBE));
    
        return ch;
    }
    
    
    • 连接烧录器和开发板,配置烧录器(这里以jlink为例)
      在这里插入图片描述
      如果是 SWD 模式,选择SW:
      在这里插入图片描述
      在这里插入图片描述

    • 编译OK,然后下载。
      在这里插入图片描述
      在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

大概率是下图为串口,应该是板子焊盘画错了,没有添加阻焊层

img

img

img

img

img

img

img


这几个都是串口具体可以看一下芯片手册,有几个脚需要重映射才能用。能否通讯具体得看单片机里的程序。或者知道接口定义。
https://www.gigadevice.com.cn/product/mcu/arm-cortex-m3/gd32f105vct6%E8%BF%99%E4%B8%AA%E6%98%AF%E8%8A%AF%E7%89%87%E6%89%8B%E5%86%8C%E5%9C%B0%E5%9D%80%E4%BD%A0%E4%B8%8B%E8%BD%BD%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%AF%B9%E7%9D%80%E5%8D%95%E7%89%87%E6%9C%BA%E7%9A%84%E7%A8%8B%E5%BA%8F%E7%9C%8B%E7%9C%8B%E6%98%AF%E4%BD%BF%E7%94%A8%E4%BA%86%E9%82%A3%E4%B8%AA%E4%B8%B2%E5%8F%A3%E3%80%82