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

④具体函数体。

转载于:https://www.cnblogs.com/tuxinbang/p/10705431.html

STM32配置一般过程(持续更新中)相关推荐

  1. php怎么配置configure,PHP编译参数configure配置详解(持续更新中)

    编译参数-使用 ./configure -h 在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释 编译参数-说明 --prefix=/opt/php //指定 php 安装目录 --with ...

  2. ECharts数据可视化项目-大屏数据可视化【持续更新中】

    ECharts数据可视化项目-大屏数据可视化[持续更新中] 文章目录 ECharts数据可视化项目-大屏数据可视化[持续更新中] 一. 数据可视化ECharts使用 二.技术栈 三.数据可视化 四.可 ...

  3. STM32 之十五 奇怪问题处理及驱动库 BUG 汇总(持续更新中)

      在使用 STM32 的 MCU 开发过程中,难免遇到各种各样的奇葩问题.或许是开发环境的问题,或许是 MCU 使用的问题,也或许是驱动库的 BUG 等等.这些问题可能不局限于某一种具体型号的 MC ...

  4. 【Vue全家桶+SSR+Koa2全栈开发】项目搭建过程 整合 学习目录(持续更新中)

    写在开头 大家好,这里是lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退.金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理,github传送门 ...

  5. 《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

    目录 0 基础"开胃菜"(共20+篇) 0.1 CANFD和Classic CAN介绍 0.2 UDS/OBD诊断网络层/传输层介绍 0.3 常用UDS诊断服务介绍 0.4 所有O ...

  6. 《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

    欢迎大家订阅<Autosar_MCAL高阶配置>专栏(可以理解为是Autosar培训教程),献上常用的案例和配置方法.下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取. 本专 ...

  7. 【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2020-07-22)

    [STM32-V7]STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2020-07-22) 参考文章: (1)[STM32-V7]STM32H743XIH6开 ...

  8. webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】

    webpack1.x环境配置与打包基础[附带各种 "坑" 与解决方案!持续更新中...] 参考文章: (1)webpack1.x环境配置与打包基础[附带各种 "坑&quo ...

  9. 【STM32-V6】STM32F429BIT6开发板开源, 丰富软件资源, 强劲硬件配置, 配套600多实例,21套手册持续更新中

    淘宝购买链接 从2016年1月份发布至今,软件资料更新过108次.当前标准库最新版本V2.8,HAL库最新版本V7.6 安富莱微信公共平台,欢迎大家关注(打造高质量公众号) HAL库版V7.6 STM ...

  10. 嵌入式相关开源项目、库、资料------持续更新中

    学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言.单片机.开源项目.物联网.操作系统.Linux.计算机等资源,并且在不断地更新中,致力于打造全网最全的嵌入式资 ...

最新文章

  1. C#使用sqlite的遇到的问题
  2. BZOJ5249: [2018多省省队联测]IIIDX(线段树 贪心)
  3. 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  4. imx6 mac地址设置
  5. python连接redis sentinel集群
  6. 鸣人的影分身(信息学奥赛一本通-T1303)
  7. 网件rax40可以刷梅林_抢先一步体验WIFI6—网件RAX40 WIFI6路由器体验记
  8. suse tomcat mysql_JDK TOMCAT MYSQL SUSE LINUX 环境搭建
  9. win10下装黑苹果双系统_最完整的黑苹果安装教程,黑苹果安装前准备工具和软件...
  10. 计算机桌面的快捷方式怎么打开方式,桌面快捷方式打不开,教您桌面快捷方式打不开怎么解决...
  11. mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布
  12. electron app 模块说明
  13. SAP 客商之一次性供应商
  14. 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...
  15. 用MATLAB的GUI绘图的一个简单例子
  16. Nmap入门:隐私刺探
  17. 2019年10月8日股市走势预测
  18. ask fsk psk 数字调制的三种基本形式
  19. 牛津大学人类未来研究所:万字长文谈AI新职场方向-政策研究
  20. 亚马逊 S3 下载当前文件夹下的所有内容

热门文章

  1. vim中权限不足时不用退出而强制保存
  2. php设计模式 - 建造者模式
  3. 参加LinuxCon Japan 2012
  4. 在内核中增加对yaffs文件系统的支持
  5. inittab 文件分析
  6. leetcode006 zig_zig_print
  7. 语言生成不自闭迷宫_4招教你分清自闭症、多动症、发育迟缓、抑郁症的区别...
  8. qt获取combobox的值_Qt官方示例嵌套甜甜圈
  9. python 多态 协议详解
  10. JSP笔记-页面重定向