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";   //字符串变量

④具体函数体。

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值