STM32F05x移植GD32F1x0注意事项

本文介绍了在将STM32F05x移植到GD32F1x0过程中遇到的问题,包括 Device 选型、EXTI中断配置、NVIC设置、SPI寄存器差异、Flash的区别以及电源管理等,并提供了相应的解决方案。移植过程中应注意中断优先级、GPIO寄存器结构和Flash读保护功能的差异。
摘要由CSDN通过智能技术生成

提要:costdown

        前言:本以为能很顺利的移植,结果130这颗芯片虽然是M3的core,实际上外部PIN与GPIO等寄存器结构与M0一致,NVIC部分又与M3一致,简言之,130即有M3的“基因”,也有M0的“基因”,主要这颗芯片是为了与ST的M0芯片抢市场。由于刚上市,所以Library从ST M0的Library基础稍作修改。寄存器名称虽然不一样,但是实际地址与功能是完全一样。下面重点列出在移植过程中,我遇到的问题:

A0:在Keil中,Device选型:

A0:GD32f130c6应当选择STM32F101C6/8,因为该系列寄存器与GD130最接近。左图为100,右图为101,实际130的SPI包含I2SCFGR与I2SPR寄存器。


另外使用STLINK读取的Device,如图:




Q1、EXTI中断无效?

A1:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
SYSCFG_EXTILineConfig(PWR_EXTI_PORT_SOURCE, PWR_EXTI_PIN_SOURCE);

其中在操作SYSCFG寄存器时,必须先使能SYSCFG的CLK,这个问题在M0上也是一样的,但是我在移植过程中,忽略了这点。

导致花了一些时间才找到这个问题。找类似这种bug,两方面着手,一用硬件仿真,看外设寄存器是否与预设一直;二设置完后直接串口打印出来。


Q2、NVIC配置部分需要增加下面两句,M0无此配置,M3则有。

A2:

/* NVIC configuration for priority grouping */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
/*定位中断向量表*/
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0); 

另外中断优先级配置因为有组的概念,所以也有所不同,如;

STM32F051:


                
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值