打印
[APM32E1]

APM32E103兼容GD32F103,时钟配置差异点

[复制链接]
1913|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Alden|  楼主 | 2022-6-9 21:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Alden 于 2022-6-9 21:48 编辑

#申请原创# #技术资源#
APM32E103系列与GD32F103系列都是兼容STM32系列。但是有朋友使用GD的库开发,换成APM或者ST的发现系统运行有问题。
经过一番对比,发现根本原因在于GD的时钟配置寄存器与APM和ST有差异导致。
APM的时钟配置寄存器(RCM_CFG)与GD的时钟配置寄存器(RCU_CFG0)都是对MCU时钟控制的主要寄存器,其功能相同,但部分位的定义存在一定差异。下面是该寄存器的主要差异点。
寄存器对比来源为《APM32E103xCxE用户手册 V1.1》,《GD32F10x_yonghushouce_Rev2.5》。


由上表的寄存器对比可以看出,APM和GD的时钟配置寄存器,大部分定义和功能都是相同的,只有ADC、USB和PLL的寄存器配置存在一定差异,APM相对GD增加FPU和SDRAM外设,其时钟预分频配置就这这个时钟配置寄存器中。
ADC和USB的时钟差异在使用时需要对比注意下。
PLL的差异在程序启动时就有很大影响,下面主要讲讲GD库中兼容APM的时钟配置的差异点修改。
测试平台:APM32E103ZET6,外部晶振使用8Mhz的。
测试代码:GD官方SDK(GD32F10x_Firmware_Library_V2.2.2)
APM32E103系列最高支持主频为120Mhz,下面就尝试在GD库中将主频配置为120Mhz运行。


GD例程包中的程序可以直接通过串口将时钟配置打印出来,我们只需要看串口输出的波特率和打印的数据是否正确来判断是否配置成功。
      1、首先确认外部晶振频率的定义是实际使用的晶振频率。


      2、GD库中没有120M主频的配置,为了方便就直接在108M配置的基础上进行修改,将宏定义改为(uint_32t)(120000000)。


      3、将下图时钟初始化中注释掉的部分改为下面的内容。

      这就涉及之前提到的时钟配置寄存器的差异,APM32E103的PLL倍频系数最大为16,GD的配置会将外部晶振频率2分频后再乘很大的倍频系数,而APM的就不需要2分频,直接8Mhz*15就能得到120Mhz,但是别忘了配置flash等待周期。
      修改后就可以烧录进行验证,可以看到串口正确打印了系统各时钟的频率数值,证明修改的是正确的。



APM32E103xCxE用户手册 V1.1.pdf (9.3 MB)

GD32F10x_Firmware_Library_V2.2.2.zip (5.69 MB)




使用特权

评论回复
沙发
huquanz711| | 2022-6-10 07:59 | 只看该作者
所以是不能完全兼容的,还是需要修改底层代码。

使用特权

评论回复
板凳
huquanz711| | 2022-6-10 08:20 | 只看该作者
写的详细啊,帮顶一下。

使用特权

评论回复
地板
yujielun| | 2022-6-20 15:28 | 只看该作者
GD官方SDK在哪里?

使用特权

评论回复
评论
Alden 2022-6-22 11:03 回复TA
GD的官网就可以下载 
5
七毛钱| | 2022-6-20 16:04 | 只看该作者
第一次看到这种国产芯片之间相互兼容的芯片

使用特权

评论回复
6
elsaflower| | 2022-6-20 16:18 | 只看该作者
这个跟stm32一样的吗?

使用特权

评论回复
评论
Alden 2022-6-22 11:06 回复TA
APM32E103也是软硬件兼容STM32的 
7
jackcat| | 2022-6-20 16:52 | 只看该作者
差异点是哪些呢   

使用特权

评论回复
8
iamaiqiyi| | 2022-6-20 17:47 | 只看该作者
APM32E1系列跟f系列有什么不同呢?

使用特权

评论回复
评论
Alden 2022-6-22 11:05 回复TA
APM的E系列比F系列支持的主频更高,并且增加了双CAN接口,是F系列的增强版 
9
mmbs| | 2022-6-20 20:29 | 只看该作者
是不是只是时钟有区别呢?

使用特权

评论回复
10
sheflynn| | 2022-6-21 20:36 | 只看该作者
这个是pin2pin兼容吗?

使用特权

评论回复
11
updownq| | 2022-6-21 21:34 | 只看该作者
兼容STM32系列怎么样?

使用特权

评论回复
12
quickman| | 2022-6-22 18:46 | 只看该作者
APM的时钟配置跟stm32一样 。  

使用特权

评论回复
13
usysm| | 2022-6-22 19:36 | 只看该作者
GD32F103和APM32E103有什么不同?

使用特权

评论回复
14
zerorobert| | 2022-6-22 20:26 | 只看该作者
这个兼容stm32吗  

使用特权

评论回复
15
1988020566| | 2022-7-9 13:03 | 只看该作者
谢谢楼主分享的资料了。   

使用特权

评论回复
16
cemaj| | 2022-7-9 13:34 | 只看该作者
APM32E103跟APM32F103兼容吗   

使用特权

评论回复
17
benjaminka| | 2022-7-9 14:40 | 只看该作者
可以直接下载吧。   

使用特权

评论回复
18
pmp| | 2022-7-9 16:05 | 只看该作者
这个时钟有什么问题吗   

使用特权

评论回复
19
uptown| | 2022-7-9 17:11 | 只看该作者
STM32能够直接下载的。   

使用特权

评论回复
20
typeof| | 2022-7-9 18:12 | 只看该作者
ST不需要修改的。   

使用特权

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

本版积分规则

37

主题

84

帖子

1

粉丝