STM学习之:基础概念

news/2024/11/17 23:57:07/
所有芯片的引脚顺序都是逆时针排序的;
开发板中把芯片的引脚引出来,连接到各种传感器上,然后在STM32上编程,(实际就是通过程序控制这些引脚输出高电平或者低电平)来控制各种传感器工作;


stm32有三种启动方式:
从Flash启动(包括系统存储器),
从内部SRAM启动,
从外部RAM启动,

存储器映射:
连接被控总线的是Flash、Ram和片上外设,这些功能部件共同排列在一个4GB的地址空间内;

寄存器映射:
给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射;

外设地址映射:
片上外设区分为四条总线,根据外设速度的不同,不同的总线挂载着不同的外设,apb挂低速外设,ahb挂载高速外设。
相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外设的地址。
其中apb1总线的地址最低,片上外设从这里开始,也叫外设基地址。


C语言对寄存器的封装:
1、封装总线和外设基地址;
2、引入结构体语法对寄存器进行封装;


GPIO:
通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能;
GPIO工作模式:输入模式:
上拉模式:高电平
下拉模式:低电平
浮空模式:不确定状态
GPIO工作模式:输出模式:
推挽模式:输出高低电平;
开漏模式:既不输出高电平,也不输出低电平,为高阻态。
上拉/下拉
推挽输出模式一般应用在输出电平为0~3.3V而且需要高速切换开关状态的场合。
在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式;
GPIO工作模式:复用功能:
推挽模式/开漏模式:
上拉/下拉:
GPIO工作模式:模拟输入输出:

输出数据寄存器:
复用功能输出:
输入数据寄存器:
复用功能输入:
模拟输入输出:


启动代码:
初始化堆栈指针SP;
初始化程序计数器指针PC;
设置堆、栈的大小;
设置中断向量表的入口地址;
配置外部SRAM作为数据寄存器(这个由用户配置,一般的开发板可没有外部SRAM);
调用SystemInitial()函数配置STM32的系统时钟;
需要由我们自己实现,即我们要编写一个具有该名称的函数,用来初始化STM32芯片的时钟,一般包括初始化AHB、
APB等各种总线的时钟,需要经过一系列的配置STM32才能达到稳定运行的状态;
STM32的所有外设的时钟由一个专门的外设来管理,叫RCC(reset and clockcontrol),使用外设时要先开启它的时钟;
设置C库的分支入口“——main"(最终用来调用该main函数);
负责初始化栈、堆,配置系统环境,准备好C语言并最后跳转到用户自定义的main函数,从此来到C的世界。

库函数封装:
定义访问外设的结构体指针:
定义初始化结构体GPIO_InitTypeDef:
定义引脚模式的枚举类型:
定义GPIO初始化函数:
ST标准软件库:我们从寄存器映像开始,把内存跟寄存器建立起一一对应的关系,然后操作寄存器点亮LED,再把寄存器封装成一个个函数。
一步一步走来,我们实现了库最简单的雏形,如果我们不断地增加操作外设的函数,并且把所有的外设都写完,一个完整的库就实现了。


STM32固件库:
STM32的库,就是按照CMSIS标准建立的。
包括:
内核函数层:其中包含用于访问内核寄存器的名称、地址定义,主要由ARM公司提供。
设备外设访问层:提供了片上的核外外设的地址和中断的定义主要由芯片生产商提供;
可见CMSIS层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,
屏蔽了硬件差异。

http://www.ppmy.cn/news/879121.html

相关文章

STM32简介(系统结构、引脚定义……)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、STM32简介二、STM32F103xxx1.STM32F1系列片上资源/外设2.命名规则3.系统结构4.引脚定义5.启动配置6.STM32最小系统电路 总结 前言 提示:这里可…

Kong 服务和路由的添加

管理服务 这里参考DB-less-Mode,因为使用的是yaml配置文件的形式,所以所有的相关配置只需要往初始化的kong.yml文件中添加就可以了,就像nginx的配置文件 DB-less-Mode 创建服务 vim /etc/kong/kong.yml services: - name: my-service #…

【从零开始学习CSS | 第三篇】选择器优先级

目录 前言: 常见选择器的优先级(从高到低) 选择器的权重: 总结: 前言: 在前几篇文章中我们介绍了大量的选择器,那么大量的选择器在使用的时候,一定是有一个优先级顺序的&#xff…

vue npm install报错如何处理

npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: eslint-plugin-vue5.2.3 npm ERR! Found: eslint6.8.0 npm ERR! node_modules/eslint npm ERR! peer eslint"> 1.6.0" from vue/cli-plugin-eslint4.4.4 这个错误…

明日之后 服务器维护,明日之后更新维护公告

斗玩网(d.chinaz.com)报道:明日之后12月27日更新了什么?更新了那些内容?更新几点结束?一起来看看明日之后12月27日更新维护公告吧。亲爱的幸存者:欢迎收听 101 广播电台,我是播音员西奥德罗。为了更好的明天,接下来我将为您播报…

5月18日德玛西亚服务器怎么维护,LOL5.18测试服更新内容是什么_LOL5月18日测试服更新内容介绍_游戏堡...

LOL5.18测试服更新内容是什么?测试服每天都有不同的内容在进行测试,下面是游戏堡小编为大家整理的LOL5月18日测试服更新内容介绍,一起来看看吧! 原画更新 都铎王朝 图奇 英雄改动 疾风剑豪 亚索 斩钢闪(Q) 旋风烈斩的持续时间由10…

不义联盟2服务器维护,不义联盟2停止工作怎么解决_不义联盟2闪退怎么办

不义联盟2停止工作怎么办?很多玩家们在进入游戏的途中会出停止工作这样弹窗,导致无法运行游戏,下面我们就来分享一下不义联盟2停止工作解决方法,希望对各位有所参考。 不义联盟2停止工作解决方法 1.系统如果是ghost安装方式&#…

今天英雄联盟服务器维护要到好久,lol今天维护时间是多久 lol维护公告2020最新...

英雄联盟今天维护到几点?今日维护时间是多久?lol维护公告2020最新消息来啦!英雄联盟在4月16日凌晨1点进行了游戏的停机更新。下面,就和小编一起来了解一下最新的维护内容吧! lol10.8版本维护到几点 LOL将在4月16日凌晨1点关闭排位赛入口(不影响已经在进行中的对局…