关注、星标公众号,直达精彩内容

作者:笙歌君独忧

链接:https://blog.csdn.net/qq_23852045/article/details/109802955


GD32F103是GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和优化,所以4者是兼容的,虽然内核不同,但是通用外设几乎很少涉及到内核部分,在时间急迫的情况下可以使用ST的库开发。

一、相同点

1)外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。
2)芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。
3)编译工具:完全相同例如:KEIL 、IAR
4)型号命名方式完全相同,所以替代只需找尾缀相同的型号即可,例如:STM32F103C8T6 与 GD32E103C8T6。
5)仿真工具:JLINK GDLINK

二、外围硬件区别


三、硬件替换需要注意的地方

从上面的介绍中,我们可以看出,GD32F30/E103系列和STM32F103系列是兼容的,但也需要一些注意的地方。

1)BOOT0必须接10K下拉或接GND,ST可悬空,这点很重要。
2)RC复位电路必须要有,否则MCU可能不能正常工作,ST的有时候可以不要。
3)有时候发现用仿真器连接不上。因为GD的swd接口驱动能力比ST弱,可以有如下几种方式解决:
a、线尽可能短一些;
b、降低SWD通讯速率;
c、SWDIO接10k上拉,SWCLK接10k下拉。
4)使用电池供电等,注意GD的工作电压,例如跌落到2.0V~2.6V区间,ST还能工作,GD可能无法启动或工作异常。

四、使用ST标准库开发需要修改的地方

1)GD对时序要求严格,配置外设需要先打开时钟,在进行外设配置,否则可能导致外设无法配置成功;ST的可以先配置在开时钟。

2)修改外部晶振起振超时时间,不用外部晶振可跳过这步。
原因:GD与ST的启动时间存在差异,为了让GD MCU更准确复位。
修改:

将宏定义:
#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)
修改为:
#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

3)GD32F10X flash取值零等待,而ST需要2个等待周期,因此,一些精确延时或者模拟IIC或SPI的代码可能需要修改。

原因:GD32采用专利技术提高了相同工作频率下的代码执行速度。
修改:如果使用for或while循环做精确定时的,定时会由于代码执行速度加快而使循环的时间变短,因此需要仿真重新计算设计延时。使用Timer定时器无影响。

4)在代码中设置读保护,如果使用外部工具读保护比如JFLASH或脱机烧录器设置,可跳过此步骤。
在写完KEY序列后,需要读该位确认key已生效,修改如下:

总共需要修改如下四个函数:

FLASH_Status FLASH_EraseOptionBytes(void);
FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);
uint32_t FLASH_GetWriteProtectionOptionByte(void);
FlagStatus FLASH_GetReadOutProtectionStatus(void);

5)GD与ST在flash的Erase和Program时间上有差异,修改如下:




6)需求flash大于256K注意,小于256K可以忽略这项。

与ST不同,GD的flash存在分区的概念,前256K,CPU执行指令零等待,称code区,此范围外称为dataZ区。两者在擦写操作上没有区别,但在读操作时间上存在较大差别,code区代码取值零等待,data区执行代码有较大延迟,代码执行效率比code区慢一个数量级,因此data区通常不建议运行对实时性要求高的代码,为解决这个问题,可以使用分散加载的方法,比如把初始化代码,图片代码等放到data区。

总结:至此,经过以上修改,在不使用USB和网络能复杂协议的代码,就可以使用ST的代码操作了。

-END-

整理文章为传播相关技术,版权归原作者所有 |

| 如有侵权,请联系删除 |

往期好文合集

STM32串口发送数据和接收数据方式总结

STM32学了很久,我还是不会做项目。

STM32:从菜鸟到牛人就是如此简单!

最 后

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

GD32如何替换STM32?相关推荐

  1. GD32替换STM32移植过程

    目录 1. 硬件芯片移植 2. 软件配置 2.1 修改外部晶振起振超时时间 2.2 增加DMA 功能 2.3 异常记录 1. 硬件芯片移植 下面以 GD32F103RET6 替换 STM32F103R ...

  2. 一次APM32替换STM32的经历分享

    系列文章目录 这几年相信大家知道STM32系列的芯片价格翻倍的涨,自己玩都快玩不起了,要是用于生产,这得多掏多少钱! 所以现在大家都选择了国产芯片,哈哈不能说多差吧!价格你没得说. 这是我的一次APM ...

  3. 灵动微电子MM32F0010A,替换STM32芯片,keil工程建立

    1.正常KEIL中找不到灵动微电子芯片,灵动微官网下载PACK包,地址如下: http://www.mindmotion.com.cn/download.aspx?cid=2546 下载完后解压,选择 ...

  4. 用国产CH32替代STM32,快来试试看!

    /* 作者: 罗冰  https://blog.csdn.net/luobing4365 */ 随着芯片价格疯涨,项目的不可控性越来越大.特别是价格方面,达到了无法想象的地步了. 按我的记忆,之前项目 ...

  5. 在STM32价格疯长下,哪些国产32可以替代?

    关注.星标公众号,直达精彩内容 前言 上次(2020.10.28)的时候,我登陆立创商城,搜索stm32f103c8t6,单价15左右,100片的话,价格不到13. 2021.1. 13 ,再次登陆, ...

  6. C语言状态机编程思想

    关注.星标公众号,直达精彩内容 文章来源:头条-嵌入式在左C语言在右 链接:https://www.toutiao.com/i6843028812112855564/ 有限状态机概念 有限状态机是一种 ...

  7. 干货 | 深度剖析C语言的main函数

    关注.星标公众号,直达精彩内容 main的返回值 查看全文 http://www.taodudu.cc/news/show-839771.html 相关文章: 状态机思路在嵌入式开发中的应用详解 卧槽 ...

  8. 除了GD!这11个国产品牌也能替代STM32!-道合顺大数据Infinigo

    众所周知,GD是STM32国产替代最成功的一家公司.在2013年,GD选择大热的Cortex-M3作为切入口,如今GD32 MCU家族拥有GD32F103主流型.GD32F101基本型.GD32F10 ...

  9. STM32国产替代,候选和比较

    意法半导体的STM32单片机十几年来已经销售了几十亿颗,在国内几乎占有超过50%的大半壁江山.然而各种贸易环境影响,供货紧张,价格飞涨,假如我们必须替换STM32,有哪些国产是可以替代的呢? 候选 北 ...

最新文章

  1. 从词向量到Bert——简单作业题+讲解
  2. 深度图像分割 -- Fully Convolutional Networks for Semantic Segmentation
  3. 虚拟化-第二篇-DC,vCenter,ESXI的安装和配置
  4. C# 消息处理学习总结
  5. windows 下怎样利用NET-SNMP 发送和接收trap
  6. fanuc机器人与视觉通信_要说工厂干起活来:工业机器人和数控机床才是真正的一对!...
  7. Java的HashCode,Equal和==
  8. Airflow 中文文档:用upstart运行Airflow
  9. oracle apache服务占用80端口
  10. python-appium520-2初步使用
  11. 百度文库免财富值下载漏洞
  12. 【双拼】双拼输入法入门指南
  13. wireshark绿色便携版 v3.4.2.0
  14. 对数正态随机数c语言程序,对数正态随机数
  15. 幼麟棋牌创建房间逻辑分析
  16. [Python]网站数据爬取任务
  17. 32位颜色 转换成16位颜色
  18. 黑龙江软件第三方检测机构/软件登记(退税)测试报告
  19. unwinding now org.apache.cxf.interceptor.Fault: Index: 1, Size: 1
  20. JAVA基础总结----JAVA面试必备

热门文章

  1. SAP Cloud Platform上的WebIDE fullstack在哪里打开
  2. SAP OData CSRF token的后台验证源代码
  3. 研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用?
  4. SAP S/4HANA的扩展字段的渲染逻辑
  5. Cloud for Customer Restriction and Exclusion Product Lists
  6. 使用ST05研究customer product id存储逻辑
  7. 测试SAP BRF+ ruleset
  8. SAP ABAP老司机平时是怎么做代码审查的
  9. SAP Cloud for Customer里的Sales Lead和Lead
  10. SAP Fiori应用里一些OData错误排查的最佳实践