你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在GD32F103移植STM32F103代码

[复制链接]
STMCU小助手 发布时间:2022-9-17 18:14
使用相同FLASH和管脚数量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。虽然两个款芯片的寄存器地址以及架构基本相同。但是需要注意的是GD32F10x主频是108兆,但是STM32F10x主频是72兆。所以需要针对以RCC时钟进行修改。
    例如打开原子哥的ALIENTEK MINISTM32 实验8 PWM输出实验例程
    先将芯片的选项进行修改
640 (14).png
    然后将STM32的启动文件替换成GD的启动文件,关于STM32启动,点击:详解STM32启动文件
640 (13).png
    当然也可以不替换,我这里选择替换掉。
640 (12).png
    然后就想修改时钟相关配置
①打开stm32f10x.h文件,找到定义
  1. //#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up/
复制代码

    修改为
  1. #define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF) /!< Time out for HSE start up */
复制代码

    这是因为GD频率高,并且稳定内部8兆的时钟HSE需要更多的时间,这里给满。
640 (11).png
②修改system_stm32f10x.c文件
    按照72MHz方式,添加108兆代码
1)
640 (10).png
改为
640 (9).png
2)将
640 (8).png
改为
640 (7).png
3)将
640 (6).png
改为
640 (5).png

640 (4).png
    STM32的27位28位是保留的,但是GD的是用来配合PLL倍频的
640 (3).png
    在最后添加108兆的时钟配置程序
640 (2).png
    全局时钟配置寄存器在GD中命名时RCC_GCFGR,在STM32中命名为RCC_CFGR,关于PLL倍频系数配置PLLMF不同,红框内是先将HSE(8兆)分频为2得到4兆,然后27倍频得到108兆。
640 (1).png
    这时就得到了108兆的主频时钟
    然后修改读取时钟的函数void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
640.png
    当发现时RCC_CFGR第27位置位了,就将倍频数从12+15 = 27.
至此,GD32F103移植ST32F103的工程就修改完成了,就可以尽情的使用ST的库代码了。有问题可以联系我,拉你入技术群交流学习。

转载自: STM32嵌入式开发

收藏 评论0 发布时间:2022-9-17 18:14

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版