STM32配置一般过程(持续更新中)

1.外设配置顺序

RCC时钟→GPIO→其他外设

2.外设具体配置过程

①配置函数首先声明PPP_InitTypeDef结构体变量。

 例:GPIO_InitTypeDef  GPIO_InitStructure;

②为定义的结构体变量设置需要的值。

设置变量中所有的值:PPP_InitStructure.member1 = value1;PPP_InitStructure.member2 = value2;...

                     OR:            定义时直接赋值:PPP_InitTypeDef PPP_InitStructure = {value1,value2,value3....};

设置变量中部分值:PPP_StructInit(&PPP_InitStructure);//先对结构体变量进行初始化

                                    PPP_InitStructure.member1 = value1;PPP_InitStructure.member2 = value2;...

③在设置一个外设前,必须调用一下一个函数来使能它的时钟。

根据不同的外设,选择不同的BUS时钟,具体可查考参考手册中的时钟树。

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx,ENABLE);

④调用PPP_Init(PPP,&PPP_InitStructure)进行外设初始化。//PPP_DeInit()功能和PPP_Init(PPP)相反,将寄存器复位为缺省值。

⑤PPP_Cmd(PPP,ENABLE);将外设使能。

3.头文件的一般结构

①开头注释:文件名、描述、作者、版本、日期;

/*******************************************
* 文件:xxx.h
* 说明:干什么用的
* 作者:xxx
* 版本:v1.0
* 日期:year/month/day
********************************************/

②预处理:预包含、宏定义

#ifndef __xxxx_h
#define __xxxx_h

#include "xxxx.h"

#define ABC_DEC    FGHIGK



#endif

③函数声明。

void  USARTtoUSB_CONFIG(void);
uint16_t ABC_CALCULATE(uint16_t, uint16_t);

4.源函数的一般结构

①开头注释:文件名、描述、作者、版本、日期;

②头文件包含;

③全局变量定义,源文件函数声明(注意:一般不要在头文件声明,否则编译会出现重定义错误)

uint16_t          xxxValue = 0;             //变量初始化
extern uint32_t   StateofXXX;               //变量来自外部引用,不能赋初值
char              xString = "I love xxx";   //字符串变量

④具体函数体。

猜你喜欢

转载自blog.csdn.net/tuxinbang1989/article/details/82085083