河北工业大学嵌入式系统知识点总结二

2024-06-21 01:04

本文主要是介绍河北工业大学嵌入式系统知识点总结二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

STM32 的最小系统
定义:指以某控制器为核心,可以运行起来的最简单的硬件组成。
组成:电源电路、时钟电路、复位电路、启动电路和程序下载电路。
电压调节器三种工作模式
运行模式、停止模式、待机模式
三种低功耗模式(功耗递减顺序)
睡眠模式、待机模式、停止模式
在 STM32 中,有 4 个时钟源 HSI、HSE、LSI、LSE
HSI 是高速内部时钟,RC 振荡器,频率为 8MHz。
HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
LSI 是低速内部时钟,RC 振荡器,频率为 40kHz。
LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体。
STM32 将时钟信号(如 HSE)经过分频或倍频(PLL)后,得到系统时钟,系统时钟经过分频,产生外设所使用的时钟。
PLLMUL:PLL倍频系数,软件设置pll系数,只有再pll关闭情况下可以被写入
PLL支持2~16倍频
复位
目的:将系统强制定位在一个可知状态
三种复位形式:系统复位、电源复位、备份区复位
ARM 时钟复杂的原因
使外设和微处理器协调工作
时钟分开有助于实现低功耗
基于 CMSIS 标准的软件架构主要分为以下 4 层
用户应用层、操作系统及中间件接口层、CMSIS 层、硬件寄存器层
CMSIS 层主要分为三部分
核内外设访问层、中间件访问层、设备外设访问层
FWLib 固件库
固件库是一个固件函数包,它由程序、数据结构和宏组成
包括微控制器所有外设的标准驱动函数(接口)
优点:通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设
使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本
常用外设名称
RCC 复位和时钟控制器
TIM 高级、通用或基本定时器
GPIO 通用 I/O 出端口
EXTI 外部中断/事件寄存器
NVIC 嵌套向量中断控制器
USART 通用同步异步收发器
GPIO 有多组端口(PA、PB 等),每个端口有 16 位(0~15),每个端口有 6 个 32位寄存器(GPIOx_ODR、GPIOx_BSRR),1 个 16 位寄存器(GPIOx_BRR)
GPIO 端口的每个位可以由软件分别配置成多种模式
模拟输入、浮空输入、上拉输入、下拉输入
开漏输出、推挽输出、复用开漏输出、复用推挽输出
最常用的是浮空输入、上拉输入、推挽输出、复用推挽输出
GPIO 速度选择
在 I/O 口的输出模式下,有三种速度,2MHz、10MHz、50MHz。这里的速度
指 I/O 口驱动电路的响应速度而不是输出信号速度。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
(计算)控制 GPIOB PIN10 输出电平的位绑定区地址是?位别名区地址是?
GPIOB 的地址为 0x40010C00,控制 GPIOB PIN10 输出的寄存器(ODR)地址为 0x40010C0C , 位 绑 定 区 地 址 为 0x40010C0D ( PIN0~PIN7 所 在 字 节 的 地 址 为 0x40010C0C,PIN8~PIN15 所在字节的地址为 0x40010C0C+1),PIN10 位于所在字节 的第 2 位,所以 n=2,位别名区地址为 0x42000000+(0x40010C0D-0x40000000)×32+2×4=0x422181A8
GPIO 固件库 stm32f10x_gpio.c、stm32f10x_gpio.h。
.h 头文件包含函数声明及函数 使用的变量,如 GPIO_Speed_TypeDef 的定义在.h 头文件中。
.c 文件包含函数的具体实 现,如 GPIO_Init 函数的具体函数体在.c 文件中。定义 GPIO 寄存器组的结构体 GPIO_TypeDef 在库文件 stm32f10x.h 中
ODR、BSRR、BRR 三个寄存器理解
参考gpio篇最后的示例程序
0 为低电平,1 为高电平。
ODR 寄存器直接控制端口某位的输出电平,如 GPIOA->ODR=0xfffe,意思是 GPIOA 的 PIN0 位置 0,其他位置 1。
BRR 和 BSRR 寄存器通过控制 ODR 寄存器的位来间接控制端口某位的输出电平。
BSRR 对 ODR 的每位进行置 1 和复位操作(置 0),BRR 对 ODR 的每位进行复位操作 (置 0)。
BSRR 的低 16 位中,某位置 1 就代表着 ODR 的某位置 1,也就代表着GPIOX 的某位置 1。BSRR 的高 16 位中,某位置 1 就代表着 ODR 的某位置 0,也就代表着 GPIOX的某位置 0。若高 16 位和低 16 位同时设置且都对应 ODR 的某一位,则以低 16 位为准。
例如 GPIOA->BSRR=0x00040002,意思是 PIN3 置 0,PIN2 置 1。
GPIOA->BSRR=0x00040004,意思是 PIN3 置 1。
在 BRR 的 16 位中,某位置 1 就代表着 ODR 的某位置 0,也就代表着 GPIOX 的某位置 0。例如 GPIOA->BRR=0x0004,意思是 PIN3 置 0。
中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。
中断通道:处理中断的信号通路,每个中断通道对应唯一的中断向量(中断服务程序的入口地址)和中断服务程序(为处理中断而编写的程序),但可具有多个中断源
NVIC 用来设置中断优先级,分为占先优先级和副优先级
高占先优先级的中断可以打断低占先优先级的中断服务,构成中断嵌套相同占先优先级的中断之间不能构成中断嵌套。
副优先级不可以中断嵌套。但占先优先级相同但副优先级不同的多个中断同时申请服务时,先响应副优先级高的中断。
当占先优先级和副优先级都相同的多个中断同时申请服务时,首先响应中断通道所对应的中断向量地址低的中断。
中断的优先级时针对中断通道的。中断通道对应的多个中断源的执行顺序,取决于中断服务程序
中断优先级控制位有 0~4 共 5 组,优先级越小,级别越高
中断和事件
中断是需要 CPU 参与的,需要软件的中断服务函数才能完成中断。
事件是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件。
事件机制提供了一个完全由硬件自动完成触发到产生结果的一个通道,不需要软 件的参与,降低了 CPU 的负荷,节省了中断资源,提高了响应速度,事件是利用硬件来提升CPU 芯片处理事件能力的一个有效方法。
USART 的接口通过 RX(接受数据输入)、TX(发送数据输出)和 GND 三个引脚与其他设备连接在一起。
帧的字长可以为 8 或 9 位,
在起始期间,TX 引脚处于低电平,即起始位是 0
在停止位期间,TX 引脚处于高电平,即停止位是 1
完全由 1 组成(从起始位到终止位)的帧成为空闲帧
完全由 0 组成(从起始位到终止位)的帧成为断开帧
起始位是 0,停止位是 1,中间的数据位全 1 是全 1 帧
起始位是 0,停止位是 1,中间的数据位全 0 是全 0帧
停止位有 0.5、1、1.5、2 位的情况
波特率是每秒钟传送二进制位数,单位为位/秒,表征数据传输速度,不是字符实际传输速度。字符的实际传输速度指每秒钟所传字符帧的帧数。
(计算)波特率=fPCLX/(16×USARTDIV),单位 kb/s
取 36MHz 或 72MHz,适用时要先乘 1000,把单位换成 KHz
USARTDIV 的数据存在了寄存器 USART_BRR 中,USARTDIV 和USART_BRR 的换算如下:
假设 USART_BRR=0x1BC,则 USARTDIV=(0x1B.C)=1×16^1+11×16^0+12×16^-1=27.75D
假设 USARTDIV=25.62,则
Fraction=0.62×16=9.92≈10=0x0A
Mantissa=25=0x19
故 USART_BRR=0x19A。
当 36MHz 时,波特率=36000/(16×25.62)=87.82kb/s
假设 USARTDIV=50.99,则 Fraction=0.99×16=15.84≈16=0x10,Mantissa=50=0x32,
故 USART_BRR=0x330。当 72MHz 时,波特率=72000/(16×50.99)=88.25kb/s
串行通信
异步通信方式:发送方和接收方采用独立的时钟
同步通信方式:每个数据块的开头以同步字符 SYN 加以指示,没有起始位和停止位。
STM32 定时器类型
2 个高级控制器 TIM1、8,4 个通用定时器 TIM2、3、4、5,2 个基本定时器 6、7,1 个实时时钟 RTC,2 个看门狗定时器和 1 个系统滴答定时器SysTick。独立看门狗比窗口看门狗的时间精度低,但是它可以独立工作。SysTick 可用于精确延时到 us、ms 级别。RTC 提供日历/时钟。
APB1 不但要为 TIM2~7 提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM2~7 仍能得到较高的时钟频率。
通用定时器 TIMx 的计数模式有向上计数模式、向下计数模式和中央对齐模式
(计算)定时时间=(预分频器+1)×(自动装载寄存器+1)/脉冲频率=(TIM_PSC+1)× (TIM_ARR+1)/CK_PSC=(TIM_Prescaler+1)×(TIM_Period+1)/TIMxCLK

这篇关于河北工业大学嵌入式系统知识点总结二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079765

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

嵌入式软件工程师应聘知识点

嵌入式软件工程师应聘 修改浏览权限 | 删除 数据结构(C语言)部分常考的知识点: 1、局部变量能、全局变量和静态变量 2、堆和栈 3、Const、volatile、define、typedef的用途 4、链表(比如链表的插入、删除和排序) 5、排序(考查冒泡法的较多) 6、可重入函数 、malloc函数 7、指针(常考函数指针,函数指针,数组指针,指针数组和

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

Java注解详细总结

什么是注解?         Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。         注解不光可以用在方法上,还可以用在类上、变量上、构造器上等位置。 自定义注解  现在我们自定义一个MyTest注解 public @interface MyTest{String aaa();boolean bbb()

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

tensorboard-----summary用法总结

Tensorflow学习笔记——Summary用法         最近在研究tensorflow自带的例程speech_command,顺便学习tensorflow的一些基本用法。 其中tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。 而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在