stm32知识点最终版报告_第1页
stm32知识点最终版报告_第2页
stm32知识点最终版报告_第3页
stm32知识点最终版报告_第4页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.* 嵌入式系统:以计算机技术为基础,以应用为中心,软件硬件可剪裁,适合应用系统对功能可靠性、成本、体积、功耗严格要求的专业计算机系统。2.* 嵌入式系统与传统系统等所区分的三个特征:微处理器通常由 32位以上的 RISC组成;软件通常是以嵌入式操作系统为核心,外加用户应用程序;具有明显的可嵌入性。3.* 嵌入式系统的应用:智能消费电子中;工业控制中;医疗设备中;信息家电及家庭智能管理系统;网络与通信系统中;环境工程;机器人。4.*ARM定义的三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用(针对日益增长的运行包括 linux 、Windows、CE和 Android

2、 在内的消费电子和无线产品);“R”系列针对实时系统(针对需要运行实时操作系统来惊醒控制应用的系统,包括汽车电子、网络和影像系统);“M”系列对胃控制器和点成本应用提供优化(针对开发费用低功耗低,同时针对性能要求不断增加的嵌入式应用而设计,如汽车车身控制系统和各种大型家电)。5.ARM Cortex处理器系列是基于 ARMv7构架的产品,既有 ARM Cortex-M系列,也有高性能的 A系列。6.NEON技术是 64/128 位 SIMD指令集,用于新一代媒体和信号处理应用加速。NEON支持 8 位,16位,32 位,64 位整数及单精度浮点 SIMD操作,以进行音频,视频、图像和游戏的处理

3、。7.ARM Cortex-M3处理器的特点:性能丰富成本低,低功耗,可配置性能强,丰富的链接。8.*STM32F10x处理器分为:101,102,103,105,107。9.*STM32的总线速度:USB接口速度 12Mb/s;USART接口速度 4.5Mb/s;SPI 接口速度可达 18Mb/s;IC 接口速度 400kHz。10.STM32系列处理器的优点:先进的内部结构;三种功耗控制;最大程度集成整合;出众及创新的外设。11.STM32F10x按性能分为:基本型 STM32F101,USB基本型 STM32F102,增强型 STM32F103,互联网型 STM32F105、STM32F

4、107系列。12.STM32F103RBT6系列的命名规则:R-引脚数量、B-Flash 大小、T-封装、6- 工作温度。13.*STM32F103按照引脚功能分为:电源、复位、时钟控制、启动配置、输入输出口。14.STM32F103总线系统包括:驱动单元、被动单元、总线矩阵。15.最小系统是指仅包含必须的元器件、仅可运行最基本软件的基本系统。16.典型的最小系统包括:微控制器芯片、供电电路、时钟电路、复位电路、启动配置电路和程序下载电路。第三章1.STM32标准库命名则:PPP_Init:根据 PPP_InitTypeDef中指定的参数初始化外设 ppp;PPP_DeInit:将外设 PPP

5、寄存器重设为缺省值;PPP_StructInit :将 PPP_InitTypeDef结构中的参数设为缺省值;PPP_Cmd:使能或失能 PPP外设;PPP_ItConfig:使能或失能 PPP外设的中断源;PPP_GetITStatus:判断 PPP外设中断发生与否;PPP_ClearITPendingBit:清除 PPP外设中断待处理标志位;PPP_DMAConfig:使能或者失能 PPP外设的 DMA接口;PPP_GetFlagStatus:检查 PPP外设的标志位;PPP_ClearFiag:清除 PPP外设的标志位。2. 文件结构:每个 C程序通常分为两个文件,一个文件用于保存程序的

6、声明,成为头文件,以.h 为后缀。另一个用于保存程序的实现,称为源文件,以.c 后缀。3.C 语言的关键字有 32 个,根据作用分为数据类型、控语言、储存类型、其他关键字。4.指针:是 C语言中广泛使用的一种数据类型.5.指向数组元素的指针定义一个整形数组和一个指向整型的指针变量:Int a 10;Int*p=NULL;/ 定义指针式要初始化P=a;/ 数组名 a 为数组第 0 个元素的地址/ 与 p=&a0等价P+i 和 a+i 表示 ai 的地址;* (p+i)和* (a+i )表示 P+i 和 a+i 内容。6. 结构体:是由基本数据类型构成的,并并一个标识符来命名的各种变量的组

7、合。7.定义结构体的格式一般为:Struct 结构名类型 变量名;. 结构变量;如果去掉结构变量,就成为对结构的说明。8.CMSIS是独立于供应商处理器硬件抽象层。9.CMSIS软件架构:用户应用层,操作系统及中间件接口层,CMSIS层和硬件层。10.CMSIS层主要由:核内外设访问层 CPAL;中层件访问层 MWAL;设备外设访问层 DPAL。11.STN32F10x标准外设库是一个固件函数包。由程序、数据结构、宏组成。12.Libraries文件夹下是标准库的源代码及启动文件。13.Startup_stm32f10x_X.s 是用汇编写的系统启动文件,X表示不同芯片型号。14.初始化时钟:

8、执行 main()函数前调用 SystemInit() 函数初始化系统时钟。15.Project 文件夹下是采用标准库写的一个工程模版和例子。(图 3-4)16.Const 的作用:声明只读变量。Typedef:给数据类型取别名。Volatile :说明变量在程序执行中。第四章1.IO 端口的多种模式:输入浮空(什么都不接)、输入上拉(接上拉电阻,输入高电平)、输入下拉、模拟输入(ADC)、开漏输入(本身不输出电压,接上拉电阻)、推挽式输出(直接输出高低电平)、推挽式复用功能、开漏复用功能。2.GPIO常用库函数:GPIO-init (根据 GPIO-Initstruct指定的参数初始化外设

9、GPIOx寄存器)、GPIO_ReadInputDataBit(读取指定端口管脚的输入) 、GPIO_ReadInputData(读取指定的 GPIO端口输入) 、GPIO_ReadOutputDataBit、GPIO_ReadOutputdata、GPIO_SetBits(设定指定的数据端口位)、GPIO_ResetBits(清除指定的数据端口位)、GPIO_WriteBits(设置或清除指定的数据端口位)、GPIO_Write(向指定 GPIO端口写入数据)、GPIO_EXTILineConfig(选择 GPIO管脚用作外部中断线路) 3.*gpio 使用流程:声明 GPIO初始化结构体

10、GPIO_InitTypeDef->使能 GPIO端口时钟 RCC_APB2PeriphClockCmd-填>充 GPIO初始化结构体参数 GPIO_Pin、GPIO_Speed、GPIO_Mode->完成 GPIO端口设置 GPIO_Init。4.闪烁灯程序流程图:GPIO配置 GPIO_Config -> 输出低电平,点亮 LED,GPIO_ResetBits-> 延时 delay-> 输出高电平,熄灭LED,GPIO_SetBits第 5 章STM32单片机外部中断一、中断的相关概念1. 中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,

11、调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。2. 中断的优先级:由中断的嵌套可以看出,不同事件的重要程度不同。重要的事件可以打断相对不重要的事件的处理,用户可以根据自己的需求对不同的事件设定重要级别3. 中断的嵌套:如果在执行一个中断时又被另一个更重要的事件打断,暂停该中断处理过程转去处理这个更重要的事件,处理完毕后再继续处理本中断的过。低优先级的中断服务可被高优先级中断源中断,反之不能;任何一种中断,一旦响应不会被同级中断源的请求所打断4. 中断源:可以引起中断的事件称为中断源5. 中断服务程序与中断向量:为了处理中断而编写的程序称为中断服务程序,对应中断服务程序的入口地

12、址被称为中断向量6. 中断请求、中断响应、中断处理及中断返回:中断源对主程序或中断服务程序提出中断要求,叫作中断请求;主程序或中断服务程序接受中断请求,进入中断服务程序的过程叫作中断响应;执行中断服务程序的过程叫作中断处理;中断服务程序执行完毕后回到主程序或者次一级别中断服务程序的过程叫作中断返回7. 中断系统:实现中断处理功能的软件、硬件系统称为中断系统二、中断控制器1.STM32F103的中断系统由嵌套中断向量控制器 NVIC,外部中断/ 事件控制器 EXTI,各外设中断控制部份2. 配置软硬件中断/ 事件请求过程:硬件中断选择;硬件事件选择;软件中断/ 事件选择; 外部中断/ 事件线路映

13、射。图 5-4(85页)三、中断执行过程和中断嵌套:优先级:抢占优先级高的先处理,抢占优先级相同,则响应优先级高的先执行。四、外部应用中断设计:( 1 ) NVIC_PriorityGroupConfig( 设 置 优 先 级 分 组 , 抢 占 优 先 级 和 响 应 优 先 级 ) 例 : NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)设置优先级分组为第一组(2)NVIC_Init( 根据 NVIC_InitStruct 中指定的参数初始化外设 NVIC寄存器)五、EXTI函数库:EXTI_Init (将外设 EXTI寄存器重设为缺省值)、EX

14、TI_GetFlagStatus(检查指定的 EXTI线路标志位设置与否)、EXTI_ClearFlag(清除EXTI 线路挂起标志位)、 EXTI_GetITStatus(检查指定的EXTI 线路触发请求发生与否)、EXTI_ClearITPendingBits(清除 EXTI线路挂起位)。六、STM32中断的设计(1)NVIC设置流程:声明 NVIC结构体 NVIC_InitTypeDef S选择中断分组 NVIC_PriorityGroupConfig() 选择中断通道S.NVIC_IRQChannel 设 置 优 先 抢 占 级S.NVIC_IRQChannelPreemptionPr

15、iority 设 置 响 应 优 先 级(2)GPIO外部中断端口配置流程图:声明 GPIO和 EXTI结构体 GPIO_InitTypeDef G EXTI_InitTypeDef E->GPIO设置-> 选择中断管脚 GPIO_EXTILineConfig()->选择中断线路 E.EXTI_Line-> 设置中断请求 E.EXTI_Mode -> 设置中断触发方式E.EXTI_trigger ->中断线路使能 E.EXTI_LineCmd -> 完成设置 EXTI_Init(3)中断服务程序处理流程图:进入中断-> 检测中断线请求 EXTI_

16、GetITStatus中断处理内容 Func()-> 清除中断信号挂起位 EXTI_GetITStatus()-> 中断返回(4)按键中断控制 LED程序流程图:开始-> LED 初始化配置 LED_Config-> 按键初始化配置 KEY_Config-> 输出低电平,点亮LEDGPIO_ResetBits->死循环等待按键中断 while (1)进入中断->检测中断线请求 EXTI_GetITStatus-> LED状态取反 GPIO_WriteBits清除中段线路挂起位EXTI_GetITStatus ->跳出中断(5)中断服务程序主

17、要完成什么工作:中段线路状态检测、中断处理内容、中断清除(6)Stm32最多支持 84个中断 16 个优先级(7)32中断设计包括 NVIC设计、中断端口设置、终端服务程序第 6 章STM32通用定时器1.STM定时器分类:2 个高级控制定时器 TIM1TIM8可分配 6 个通道的三相 PWM发生器(多用于电机控制);4 个通用定时器 TIM2TIM3 TIM4TIM5每个定时器有 4 个输入捕获/ 输出比较/PWM/脉冲计数;2 个基本定时器 TIM6TIM7 主要用于产生 DAC触发信号;还有两个看门狗定时器(窗口和独立)和一个系统滴答定时器。2. 通用定时器的基本功能是定时和计数3. 时

18、钟的选择:内部时钟源(CK_INT)当 TIMx_SMCR寄存器的 SMS=0;外部时钟源模式 1(外部输入引脚 TIx ) SMS=111;外部时钟源模式 2(外部触发输入 ETR) ECE=1;内部触发输入(ITR)4.时基单元:设置定时器/ 计数器计数时钟的基本单元。包含技术寄存器(TIMx_CNT); 预分频器寄存器(TIMx_PSC); 自动装载寄存器(TIMx_ARR)5. 计数模式:向上计数模式(TIM_CR1中的 CMS=00,DIR=1); 向下计数模式(CMS=00,DIR=0);中央对齐模式(CMS=01、11、10)6. 通用定时器使用流程:NVIC设置;定时器中断配置

19、;中断服务程序7.led 亮 1 秒灭 1 秒程序流程图:开始LED初始化配置(LED_Config-NVIC)初始化配置(TIM3_NVIC_Config)- 定时器初始化配置(TIM3 _ Config)-输出低电平,点亮 LED(GPIO_ResetBits)- 输出高电平,点亮 LED(GPIO_SetBits)-死循环等待中断进入中断- 检测定时中断请求(TIM_GetITStatus() )- 是否则中断返回 - 中断处理内容,改变 LED状态清楚定时中断标志(TIM_ClearITPendingBit)- 中断返回8. 10 通用定时器常用库函数TIM_Cmd使能或失能 TIMx

20、外设TIM_ITConfig 使能或者失能指定的 TIM中断TIM_GetTStatus检查指定的 TIM中断发生与否11TIM中断配置void TIM3_configTIM_TimeBaseInitTypeDef TIM_TIM_BaseStructure;/声明定时器时基结构体RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/开启定时器 TIM1时钟TIM_TimeBaseStructure.TIM_Prescaler=(799-1);/ 设置预分频值TIM_TimeBaseStructure.TIM_CounterMode=TIM_C

21、oundterMode_Up;/设置技术模式为向上TIM_TimeBaseStructure.TIM_Period=1000;/设置计数值TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);/完成时基设置TIM_ITConfig(TIM3,TIM_IT_Update|TIM_IT_Trigger,ENABLE);/失能或者失能指定的 TIM中断TIM_Cmd(TIM3,ENABLE);TIM_Period*(TIM_Prescaler+1)/ 系统时钟=中断时间9. 主要功能介绍:外部事件计数,输入捕获,输出比较,单脉冲输出,正交编码器,霍尔传感器输入

22、,输出比较信号死区产生,刹车信号输入功能第七章1. 串行通信:是数据字节的各位一位一位的一次传送的通信方式。速度慢占用传输线条数少,适于远距离传输。2. 并行通信:数据字节各位同时传送的通信方式。速度快,占用传输线条数多,适用于近距离通信。3. 串行通信方式:单工通信,半双工通信,全双工通信。4. 波特率:即数据的传输速度,串行通信中,每秒传送的二进制数的位数称为波特率。波特率的倒数是每一位数的传输时间。5.STM32的 USART的结构特性:stm32由 3-5 个的全工的一步串行通信 USART接口,可实现设备之间的串行数据传输。USART外部引脚包括接收数据输入(RX)、发送数据输出(T

23、X)、清除发送(nCTS)、发送请求(nRTS)和发送器时钟输出(CK),通过这些引脚可以与其他外部设备通信。6. USART的基本配置流程:声明 GPIO和 USART初始化结构体(GPIO_InitTypeDefG USART_InitTypeDef U)-> 开启串口、串口所用 IO 时钟( RCC_APB2PeriphClockCmd() )-> 设置 IO 引脚功能为复用推挽输出和浮空输出和浮空输入 -> 设置波特率(U.USART_BandRate)-> 设置数据格式:数据位、停止位、校验位(U.USART_WordLengthU.USART_StopBit

24、s U.USART_Parity) -> 设置串口模式(U.USART_Mode)-> 完成串口设置(USART_Init() )-> 使能串口(USART_Cmd() )。7. 串行通信接口抗干扰的方式:采用标准串行接口(RS-232C),TTL电平通信接口,RS-485双机通信接口。第八章1DMA:用来提供外设与外设之间、外设与寄存器之间、存储器与存储器之间的高速数据传输,无需 CPU干预,数据可以通过 DMA 快速传输,节省 CPU的资源2DMA使用流程:NVIC设置,DMA模式及中断配置,中断服务。3DMA的传输过程包括:DMA请求,DMA响应,DMA传输,DMA结束

25、4总线矩阵有两个主要特征:循环优先调度,多层结构和总线挪用。第九章模数转化器 ADCADC性能指标:分辨率、量化误差、偏移误差、满刻度误差、线性度、绝对精度、相对精度、转换速率。按转换过程不同:ADC可以分为:逐次逼近性、双积分型、电压- 频率变换型。第十一章 SPI1.SPI 接口定义:他只需要 4 条线:串行时钟线(SCK),主机输入/ 从设备输出引脚(MIOS),主机输出/ 从设备输入引脚(MOSI),低电平有效的从基选择线。2.SPI 是一个环形总线结构,由 NSS,SCK,MISO,MOSI,构成,3.* 结构体类型自定义:typedef structLong num;Char na

26、me10;Char sex;STUDENT;/ 定义结构体类型为 STUDENTInt main ()STUDENT stu1 stu0;/ 定义 STUDENGT类型的变量 stu1 和数组 stu4.* 条件编译示例#include<stdio.h>#define DEBUG / 此时#ifdef DEBUG为真/#define DEBUG 0 / 此时为假Int main ()#ifdef DEBUGPrintf (“Debugging/n”);#eslePrintf (“Not Debugging/n);#endifPrintf( “Running/n”)System(“p

27、ause”)Return05.elif示例#include<stdio.h>#define TWOint main ()#ifdef ONEPrintf (“1/n”)#elif defined TWOPrintf( “2/n ”)#elsePrintf( “3/n ”)#endifSystem(“pause”)Return 0程序:void GPIO_Config(void)/GPIO 配置GPIO_InitTypeDef GPIO_InitStructure;/声明 GPIO初始化结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, E

28、NABLE);/使能PD口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;/ 配置端口 PD2GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/输出速率 50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;/推挽输出GPIO_Init(GPIOD, &GPIO_InitStructure);/调用函数使 PD口初始化(AIN模拟输入,IN_FLOATING浮空输入,IPD下拉输入,IPU上拉输入,Out_OD开漏输出,Out_PP推挽输出,AF_

29、OD复用开漏输出,AF_PP复用推挽输出)void key_Config(void)/按键中断配置 (还要有 NVIC配置)GPIO_InitTypeDef GPIO_InitStructure;/声明 GPIO初始化结构体EXTI_InitTypeDef EXTI_InitStructure;/结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);/使能PA口时钟,并使能复用时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;/ 配置端口 PA15GPIO_I

30、nitStructure.GPIO_Mode = GPIO_Mode_IPU;/上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);/调用函数使 PA口初始化GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource15);/选择中断管脚EXTI_InitStructure.EXTI_Line = EXTI_Line15;/中断线路EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;/中断请求EXTI_InitStructure.EXTI_Trigge

31、r = EXTI_Trigger_Falling;/下降沿触发 (Rising 上升)EXTI_InitStructure.EXTI_LineCmd = ENABLE;/中断线使能EXTI_Init(&EXTI_InitStructure);/调用函数完成设置void NVIC_Config(void)/NVIC 配置NVIC_InitTypeDef NVIC_InitStructure;/声明结构体NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/选择中断分组NVIC_InitStructure.NVIC_IRQChannel=EXTI1

32、5_10_IRQn;/选择中断通道(EXTI9_5_IRQn,EXTI0_IRQnEXTI4_IRQn,TIM3_IRQn) NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/ 设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;/ 设置相响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/中断使能NVIC_Init(&NVIC_InitStructure);/调用函数完成中断设置void EXTI15

33、_10_IRQHandler(void)/ 中断程序if(EXTI_GetITStatus(EXTI_Line15)!=RESET)/ 判断是否中断/ 加上中断后的程序EXTI_ClearITPendingBit(EXTI_Line15);/ 清除中断标志位void USART_Config(void)/ 串口通信配置GPIO_InitTypeDef GPIO_InitStructure;/声明结构体USART_InitTypeDef USART_InitStructure;/ 声明结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2P

34、eriph_USART1,ENABLE);/使能PA,USART1口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;/ 配置端口 PA9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/输出速率 50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);/调用函数使 PA口初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;/ 配

35、置端口 PA10GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/输出速率 50MHZGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;/浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);/调用函数使 PA口初始化USART_InitStructure.USART_BaudRate = 9600; /设置串口通信波特率USART_InitStructure.USART_WordLength = USART_WordLength_字8b;/长 8 位USART_InitStructure.USART_StopBits = USART_StopBits_1;/一个停止位USART_InitStructure.USART_Parity = USAR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论