关键词不能为空

当前您在: 主页 > 英语 >

GD32F10x到GD32F1x0-软件移植说明

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 08:27
tags:

-

2021年2月8日发(作者:chau)



GD32F10x



GD32F1x0-


软件移植


说明




GD32F10x



GD32F1x0


的软件移植说明



1




移植前准备工作。



将原有的


ST



10x


的库替换 成我们


GD



库(可以从


demo


中找到)


,包括系统头文件、外

< p>
设库文件以及启动文件等,


当前给客户提供的库


都 是以


stm32f0xx


命名,这是我们在

ST



10x


< br>0xx


的外设库的基础上修改的,


完全可以正常


使用,后续我们会推出自己的库。开发环境的


device


选择和


flash


配置可以有两种方式,一


种方式是直接


device


中选择


ST



STM32F100C8


flash


配置选择


ST



64K



flas h


配置文件;


另一种方式是使用我们提供的

GD



GD32F1x0



device


(需要事先在


keil


安装目录下添加我们


GD


的配置文件)



flash


配置选择我们

GD



64K


flash


配置文件,其他配置可保持与之前相同不


用改动。如果选择

< p>
GD


的配置文件,需要操作的


步骤如下

< p>
(假如


keil


的安装路径为:

< br>C:Keil







拷贝




C:KeilUV4









GD32F1x0_




C:KeilARMFlash





C:Keil


下创建文件夹命名 “


GD








GD














GD32F1x0













C:KeilARMSFDGDG D32F1x0




这样,在


keil



device


界面,就可以找到


GD32F1x0



device


,如图


1.1


所示。< /p>

























1.1


选择


GD32F1x0



device





1.2 flash


配置文件及路径说明



2




所有模 块的


GPIO


初始化部分。



1x0


相对于


10x


系 列最大的改动在


GPIO


部分,


主要有 以下三点:



2.1 GPIO


时钟总线配置区别。



之前< /p>


10x


系列的


GPIO ABCDF


都挂在了


APB2


总线上,



1x0



GPIO


口都挂在了


AHB


总线上,

所以在打开


GPIO


ABCDF


的时钟的时候就要注意,


如下:



比如 使能


GPIOA


时钟:



10x







RCC_APB2PeriphClockCm d(RCC_APB2Periph_G


PIOA,ENABLE);


1x0







RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPI


OA,ENABLE);


GPIOB



C


< br>D



F


的时钟使能以此类推。< /p>



2.2 GPIO


口复用配置区别。



1x0< /p>


系列和


10x


系列的

IO


口复用配置模式不


同。具体对比说明如下:

< p>


比如


USART1


的< /p>


GPIO


口配置,可以映射到


PA9



PA10


,也可以映射到


PB6



PB7


< p>


2.2.1 10x


配置

USART1



GPIO


口,大概 过程


如下(以


PA9



PA10


为例)




2.2.1.1


首先使能


USART 1



GPIOA


AFIO


的时


钟。



RCC_APB2PeriphClockCmd(RCC_APB2Periph_U


SART1, ENABLE);


RCC_APB2PeriphCloc kCmd(RCC_APB2Periph_


1x0


无需


GPIOA , ENABLE);


复用模式



RCC_APB2Peri phClockCmd(RCC_APB2Periph_A


FIO , ENABLE);


2.2.1.2


然后配置


PA9



PA10


的模式。< /p>



GPIO_InitTypeDef GPIO_InitStructure;


GPIO__Pin


GPIO_Pin_9;


GPIO__Speed


GPIO_Speed_50MHz;


GPIO__Mode


GPIO_Mode_AF_PP;


GPIO_Init(GPIOA, &GPIO_InitStructure);


GPIO__Pin


GPIO_Pin_10;


GPIO__Mode


GPIO_Mode_IN_FLOATING;


GPIO_Init(GPIOA, &GPIO_InitStructure);


2.2.1.3


最后配置串口相应参数,这部分和

< p>
1x0


完全相同,就不列出来了。



2.2.2 1x0


配置


USART 1



GPIO


口,大概过程

< p>
如下(以


PA9



PA1 0


为例)




2.2.1.1


首先使能


USART 1



GPIOA


的时钟。



=


=


=


=


=



R CC_APB2PeriphClockCmd(RCC_APB2Periph_U


S ART1, ENABLE);


RCC_AHBPeriphClockCmd(RC C_AHBPeriph_GP


IOA , ENABLE);


2.2.1.2


然后配置


PA9



PA10


的模式。



GPIO_InitTypeDef GPIO_InitStructure;


复用模式










GPIO_PinAFConfig( GPIOA ,


GPIO_PinSource9, GPIO_AF_1 );













GPIO_PinAFConfig( GPIOA ,


GPIO_PinSource10,


GPIO_AF_1 );















此处不需










GPIO__P


要再配置


in










=


GPIO_Pin_9


|


GPIO_Pin_10;










GPIO__M


ode



= GPIO_Mode_AF;










GPIO__S


peed


= GPIO_Speed_50MHz;










GPIO__O


Type


= GPIO_OType_PP;










GPIO__P



uPd




= GPIO_PuPd_NOPULL;




GPIO_Init(


&GPIO_InitStructure);


如果将


USART1


映射到


PB6

< br>和


PB7


,则复用模


式配置如下 :











GPIO_PinAFConfig( GPIOB ,


GPIO_PinSource6, GPIO_AF_0 );






GPIO_PinAFConfig(


GPIOB


,


GPIO_PinSource7, GPIO_AF_0 );


至于为什么


PA9


< p>
PA10


映射到


GPIO_AF_1



PB6



PB7


映射到


GPIO_AF_0


,需要查看


1x0



datasheet

< br>,如下图:



GPIOA


,




2.1 PB


复用功能说明




所以,关于


GPIO


口的复用配置都需要参考


datasheet


来完成。



2.2.2.3


最后配置串口相应参数,这部分和

< p>
10x


完全相同,就不列出来了。



2.3 GPIO


口模式配置



10x


系列的


GPIO

口有


8


种模式,如下图:






2.2 10x


系列


GPIO



8


种模式




1x0


系列的


GPIO


口配置 在


10x


系列的基础


上,按输入输出、 推挽开漏、上拉下拉模式分成


了三个结构体,


相较


10x


系列而言,


组合方式更


加自由,如下图:








2.3 1x0


系列


GPIO


口模式

< p>


例如:


10x


系列配置 某个


GPIO


口为推挽输出



GPIO__Mode


=


GPIO_Mode_Out_PP


1x0


系列中,就变成了两条语句:



GPIO__Mode


GPIO_Mode_OUT;


GPIO__OType=


GPIO_OType_PP;


又如:


10x


系列配置某个

< p>
GPIO


口为下拉输入:



GPIO__Mode


=


GPIO_Mode_IPD


1x0


系列中,就变成了:



GPIO__Mode


GPIO_Mode_IN;


GPIO__PuPd


=


GPIO_PuPd_DOWN;



3




外设中断部分



=


=

-


-


-


-


-


-


-


-



本文更新与2021-02-08 08:27,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/613303.html

GD32F10x到GD32F1x0-软件移植说明的相关文章