STM32简记

一、基础

1、工程结构

USER :代码工程文件。(Project) .uvprojx :是工程文件。 Listings 和 Objects :文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件。
CORE : 用来存放核心文件和启动文件。
OBJ:是用来存放编译过程文件以及hex 文件。
STM32F10x_FWLib : 文件夹用来存放 ST 官方提供的库函数源码文件。

USER 下面存放的主要是用户代码
HARDWARE 下面存放的是外设驱动代码,他的实现是通过调用 FWLib下面的固件库文件实现的。
SYSTEM 是 共用代码,包含 Systick 延时函数,IO 口位带操作以及串口相关函数。
CORE 下面存放的是固件库必须的核心文件和启动文件。
FWLib 下面存放的是 ST 官方提供的外设驱动固件库文件,这些文件可以根据工程需要来添加和删除。

2、C语言

声明结构体类型:

Struct 结构体名{
       成员列表; 
      }变量名列表;

结构体成员变量的引用方法是:

结构体变量名字.成员名

结构体指针成员变量的引用方法是通过“->”符号实现,

结构体指针成员变量.成员名

3、时钟

APB(Advanced Peripheral Bus),外围总线
Periph ~ Peripheral 外围
当需要使用某模块时,记得一定要先使能对应的时钟。
RCC(Reset Clock Controller) —— 复位与时钟控制

4、中断

NVIC 中断优先级管理
内嵌向量中断控制器:Nested Vectored Interrupt Controller

CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。
STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。
STM32F103 系列上面,又只有 60 个可屏蔽中断。

中断寄存器

ISER[8]:Interrupt Set-Enable Registers,中断使能寄存器组。

使能某个中断,必须设置相应的 ISER 位为 1,使该中断被使能(这里仅仅是使能,还要配合中断分组、屏蔽、IO 口映射等设置才算是一个完整的中断设置)。

ICER[8]:Interrupt Clear-Enable Registers,是一个中断除能寄存器组。
ISPR[8]:Interrupt Set-Pending Registers,是一个中断挂起控制寄存器组。
ICPR[8]:Interrupt Clear-Pending Registers,是一个中断解挂控制寄存器组。
IABR[8]:Interrupt Active Bit Registers,是一个中断激活标志位寄存器组。
IP[240]:Interrupt Priority Registers,是一个中断优先级控制的寄存器组。

抢占优先级和响应优先级(子优先级)
STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。
抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续执行中断服务函数A)
而响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,如果两个中断同时到达, 则先处理响应优先级高的中断。
configuration 配置
中断优先级设置的步骤:
step1: 系统运行开始的时候设置中断分组。确定组号,也就是确定抢占优先级和子优先级的
分配位数。调用函数为 中断优先级分组函数 NVIC_PriorityGroupConfig();
函数声明:

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

函数调用:
设置整个系统的中断优先级分组值为2,

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

这样就确定了一共为“2 位抢占优先级,2 位响应优先级。

step2: 设置所用到的中断中断优先级别。对每个中断调用函数为 中断初始化函数 NVIC_Init();

函数声明:

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);s

结构体具体写法见手册126页。

二、GPIO

1、8 种模式

①输入浮空
②输入上拉
③输入下拉
④模拟输入
⑤开漏输出
⑥推挽输出
⑦推挽式复用功能
⑧开漏复用功能

GPIO_Mode_AIN = 0x0, //模拟输入
GPIO_Mode_IN_FLOATING = 0x04, //浮空输入
GPIO_Mode_IPD = 0x28, //下拉输入
GPIO_Mode_IPU = 0x48, //上拉输入
GPIO_Mode_Out_OD = 0x14, //开漏输出
GPIO_Mode_Out_PP = 0x10, //通用推挽输出
GPIO_Mode_AF_OD = 0x1C, //复用开漏输出
GPIO_Mode_AF_PP = 0x18 //复用推挽

2、操作步骤

step1:使能 IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd()。
GPIO 是挂载在APB2总线上的外设,在固件库中对挂载在 APB2 总线上的外设时钟使能是通过函数 RCC_APB2PeriphClockCmd()来实现的。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能 PB,PE 端口时钟

step2:初始化 IO 参数。调用函数GPIO_Init();
  在固件库开发中,通过GPIO初始化函数来配置IO口的模式和速度:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

这个函数有两个参数,第一个参数是用来指定GPIO,取值范围为GPIOA~GPIOG。第二个参数为 初始化参数结构体指针
通过初始化结构体初始化GPIO 的常用格式是:

GPIO_InitTypeDef GPIO_InitStructure;   //定义 结构体类型为 GPIO_InitTypeDef,结构体名为GPIO_InitStructure 的结构体
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度 50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);//根据设定参数配置 GPIO

step3:操作 IO。
①通过GPIO_ReadInputDataBit 函数操作IDR寄存器 读取IO端口数据:

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5); //读GPIOA.5的电平状态

返回值是 1(Bit_SET)或者 0(Bit_RESET);

②通过函数GPIO_SetBits()和函数GPIO_ResetBits()来设置GPIO端口输出:

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
GPIO_SetBits(GPIOB, GPIO_Pin_5);     //设置GPIOB.5输出1
GPIO_ResetBits (GPIOB, GPIO_Pin_5);  //设置GPIOB.5输出位0

3、端口复用

① GPIO 端口时钟使能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

②复用的外设时钟使能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

③端口模式配置

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 等保2.0标准中对技术安全要求主要包括信息安全类要求(简记为x)、服务保证类要求(简记为s)、其他安全保护类要求(简记为g)和数据设备类要求(简记为f)。 a. 信息安全类要求(x)是等保2.0标准中的一项重要要求,它涉及了信息系统的安全保护、安全管理和信息安全技术的实施要求,包括身份认证、访问控制、审计、加密等内容。 b. 服务保证类要求(s)也是等保2.0标准中的一项重要要求,它主要围绕着信息系统的可用性、可靠性和稳定性进行要求,包括灾备备份、容灾恢复、业务连续性等内容。 c. 其他安全保护类要求(g)是等保2.0标准中的一项综合要求,主要涉及到对软硬件安全配置、网络安全和物理环境安全等方面的要求,包括网络隔离、漏洞修复、环境监控等内容。 d. 数据设备类要求(f)是等保2.0标准中专门对数据安全进行要求的一项内容,它主要包括数据备份、数据恢复、数据存储、数据传输等方面的安全要求。 综上所述,a、b、c、d选项所描述的等保2.0标准中对技术安全要求的分工是正确的。 ### 回答2: 等保2.0标准中对技术安全要求主要包含了信息安全类要求、服务保证类要求、其他安全保护类要求和数据设备类要求。 a. 信息安全类要求指的是对信息系统的各种组成部分、信息传输和处理过程以及相关的信息安全协议、算法等进行安全要求和控制。这是等保2.0标准中非常重要的一部分。 b. 服务保证类要求主要涉及系统的可用性、可靠性、灾备能力、响应能力等方面的要求。这些要求旨在确保信息系统随时可用,并且能够及时处理异常情况。 c. 其他安全保护类要求主要包括物理环境安全、人员安全、网络安全、应用软件安全等方面的要求。这些要求涉及到信息系统运行环境的各个方面和安全管理控制的要求。 d. 数据设备类要求主要涉及到数据的存储、传输、备份、还原等方面的要求。这些要求着重保护重要数据的安全性和完整性。 所以以上说法都正确,它们都是等保2.0标准中对技术安全方面的要求的不同分类。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#法外狂徒张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值