使用GD32F103过程中遇坑分享

[复制链接]
1978|18
手机看帖
扫描二维码
随时随地手机跟帖
lesheng002|  楼主 | 2022-3-3 08:49 | 显示全部楼层 |阅读模式
本帖最后由 lesheng002 于 2022-4-29 19:59 编辑

第一坑:    GD32F103VCT6关于SPI2的使用
          GD32F103VCT6数据手册中关于管脚功能描述有如下

    89889622006e439984.png

    注释中也说明了,GD32F103VCT6芯片中有这个功能
    68707622007661c5d0.png
    但在管脚重映射配置库函数中就有这样的说明,这个功能只在互联型产品中才有
    2657622007eeebe4a.png
    3529662200849ab3c5.png
    调试中,AFIO中也没有SPI2这个选项
    93548622008e602346.png

待续...

使用特权

评论回复
tpgf| | 2022-4-1 15:09 | 显示全部楼层
手册上应该详细说明的

使用特权

评论回复
晓伍| | 2022-4-1 15:19 | 显示全部楼层
期待楼主的后续哈

使用特权

评论回复
八层楼| | 2022-4-1 15:26 | 显示全部楼层
得前后进行比对哈

使用特权

评论回复
观海| | 2022-4-1 15:30 | 显示全部楼层
这个是什么工具的截图啊

使用特权

评论回复
guanjiaer| | 2022-4-1 15:38 | 显示全部楼层
好像都不是很一致 是吧

使用特权

评论回复
heimaojingzhang| | 2022-4-1 15:44 | 显示全部楼层
没看明白是哪里的坑了

使用特权

评论回复
fattyhuang| | 2022-4-1 23:23 | 显示全部楼层
heimaojingzhang 发表于 2022-4-1 15:44
没看明白是哪里的坑了

楼主说的是硬件手册中这几个管脚可以重映射为SPI2,但是官方库中并不能重映射。。。。。。

使用特权

评论回复
caigang13| | 2022-4-2 08:33 | 显示全部楼层
哈哈,欢迎分享避坑经验。

使用特权

评论回复
asmine| | 2022-4-9 18:13 | 显示全部楼层
这是看型号的吧

使用特权

评论回复
moticsoft| | 2022-4-11 08:49 | 显示全部楼层
这么看来确实坑

使用特权

评论回复
lesheng002|  楼主 | 2022-4-30 09:08 | 显示全部楼层
第二坑:   GD32F103VCT6关于串口结合DMA使用

        数据手册中关于USART1的引脚定义:
          78164626bd3a295832.png
       关于USART0的引脚定义
          67322626bd41b088be.png
       数据手册中的序号是从0开始标记,如USART0, USART1, USART2, 参考官网下载的GD32F10xx_DataSheet_Rev2.4.PDF数据手册资料,而下面的截图则是从官网下载的GD32F10x ARM Cortex-M3 32-bit MCU 用户手册中找到的,其对于串口的序号是从1开始标记,如果USART1, USART2, USART3

       相对应的DMA通道定义
            87843626bd4be47310.png
               1469626bd4ef22621.png
             96982626bd5205090d.png

         市值几百上千亿的大公司做的产品,写的手册,比小公司还不规范


使用特权

评论回复
lesheng002|  楼主 | 2022-8-6 21:26 | 显示全部楼层
第三坑:GD32F10XVC96位器件唯一ID不唯一
    9853062ee6a592b8fb.png

    采集卡用网络通讯,我设置的MAC地址为器件唯一ID值的最末32位,代码如下
//    int_device_serial[0] = *(__IO uint32_t*)(0x1FFFF7E0);
//    int_device_serial[1] = *(__IO uint32_t*)(0x1FFFF7EC);
    netProductID = *(__IO uint32_t*)(0x1FFFF7f0);

    通过调试发现无论读哪个地址的内容,2个板子的ID值是一样的

    由于MAC地址相同,导致网络通讯出现如下现象:
                       A和B, 2块板子作为服务器运行,客户端连接这2块板子,数据收发不能同时进行,对其中的A板子发命令,
                能收到数据,此时给B板子发命令就收不到数据
                间隔一个时间后,给B板子发命令能收到数据,则此时给A板子发命令就收不到数据,
                奇怪的很

...
    无语



使用特权

评论回复
zcz0426| | 2022-8-12 16:51 | 显示全部楼层
楼主用“命”换来的避坑经验

使用特权

评论回复
海滨消消| | 2022-8-16 09:39 | 显示全部楼层
确实有点坑,感谢分享避坑经验

使用特权

评论回复
LOVEEVER| | 2022-11-24 20:59 | 显示全部楼层
观海 发表于 2022-4-1 15:30
这个是什么工具的截图啊

这个是DEBUG的截图测试

使用特权

评论回复
LOVEEVER| | 2022-11-24 21:01 | 显示全部楼层
楼主这些经验真是让后来人领教了,直接可以必坑

使用特权

评论回复
lesheng002|  楼主 | 2022-12-15 22:39 | 显示全部楼层
本帖最后由 lesheng002 于 2022-12-15 22:44 编辑

第四坑: 从存储器容量信息寄存器中读其容量,结果只有FLASH容量,没有RAM容量信息,怪了

      MCU型号是GD32F303ZKT6,从MCU的数据手册中了解到,其SRAM容量是96KB,FLASH容量总的是3072K,十六进制值分别是0x60和0x0C00

  官方资料是这么介绍的
    33381639b2fa6891b5.png

   写个程序去读改寄存器得到结果很吃惊,SRAM容量为0
    25340639b2e836c32b.png

  调试发现
    79838639b3106eb1b1.png
    变量X的值是0x00000c00,
        其中高16位值是SRAM的容量值,为0,
        低16位值是FLASH总容量值,为0x0c00=3072KB

其它芯片没有留意过,不知道是不是也有这样的问题


使用特权

评论回复
MessageRing| | 2022-12-20 16:54 | 显示全部楼层
硬件手册中这几个管脚可以重映射为SPI2,但是官方库中并不能重映射

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

88

帖子

0

粉丝