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"; //字符串变量
④具体函数体。
转载于:https://www.cnblogs.com/tuxinbang/p/10705431.html
STM32配置一般过程(持续更新中)相关推荐
- php怎么配置configure,PHP编译参数configure配置详解(持续更新中)
编译参数-使用 ./configure -h 在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释 编译参数-说明 --prefix=/opt/php //指定 php 安装目录 --with ...
- ECharts数据可视化项目-大屏数据可视化【持续更新中】
ECharts数据可视化项目-大屏数据可视化[持续更新中] 文章目录 ECharts数据可视化项目-大屏数据可视化[持续更新中] 一. 数据可视化ECharts使用 二.技术栈 三.数据可视化 四.可 ...
- STM32 之十五 奇怪问题处理及驱动库 BUG 汇总(持续更新中)
在使用 STM32 的 MCU 开发过程中,难免遇到各种各样的奇葩问题.或许是开发环境的问题,或许是 MCU 使用的问题,也或许是驱动库的 BUG 等等.这些问题可能不局限于某一种具体型号的 MC ...
- 【Vue全家桶+SSR+Koa2全栈开发】项目搭建过程 整合 学习目录(持续更新中)
写在开头 大家好,这里是lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退.金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理,github传送门 ...
- 《Autosar_BSW高阶配置》总目录_培训教程持续更新中...
目录 0 基础"开胃菜"(共20+篇) 0.1 CANFD和Classic CAN介绍 0.2 UDS/OBD诊断网络层/传输层介绍 0.3 常用UDS诊断服务介绍 0.4 所有O ...
- 《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...
欢迎大家订阅<Autosar_MCAL高阶配置>专栏(可以理解为是Autosar培训教程),献上常用的案例和配置方法.下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取. 本专 ...
- 【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2020-07-22)
[STM32-V7]STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2020-07-22) 参考文章: (1)[STM32-V7]STM32H743XIH6开 ...
- webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】
webpack1.x环境配置与打包基础[附带各种 "坑" 与解决方案!持续更新中...] 参考文章: (1)webpack1.x环境配置与打包基础[附带各种 "坑&quo ...
- 【STM32-V6】STM32F429BIT6开发板开源, 丰富软件资源, 强劲硬件配置, 配套600多实例,21套手册持续更新中
淘宝购买链接 从2016年1月份发布至今,软件资料更新过108次.当前标准库最新版本V2.8,HAL库最新版本V7.6 安富莱微信公共平台,欢迎大家关注(打造高质量公众号) HAL库版V7.6 STM ...
- 嵌入式相关开源项目、库、资料------持续更新中
学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言.单片机.开源项目.物联网.操作系统.Linux.计算机等资源,并且在不断地更新中,致力于打造全网最全的嵌入式资 ...
最新文章
- C#使用sqlite的遇到的问题
- BZOJ5249: [2018多省省队联测]IIIDX(线段树 贪心)
- 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
- imx6 mac地址设置
- python连接redis sentinel集群
- 鸣人的影分身(信息学奥赛一本通-T1303)
- 网件rax40可以刷梅林_抢先一步体验WIFI6—网件RAX40 WIFI6路由器体验记
- suse tomcat mysql_JDK TOMCAT MYSQL SUSE LINUX 环境搭建
- win10下装黑苹果双系统_最完整的黑苹果安装教程,黑苹果安装前准备工具和软件...
- 计算机桌面的快捷方式怎么打开方式,桌面快捷方式打不开,教您桌面快捷方式打不开怎么解决...
- mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布
- electron app 模块说明
- SAP 客商之一次性供应商
- 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...
- 用MATLAB的GUI绘图的一个简单例子
- Nmap入门:隐私刺探
- 2019年10月8日股市走势预测
- ask fsk psk 数字调制的三种基本形式
- 牛津大学人类未来研究所:万字长文谈AI新职场方向-政策研究
- 亚马逊 S3 下载当前文件夹下的所有内容