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

下载本文档

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

文档简介

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操作,以进行音频,视频、图像和游戏的处理。7. ARM Cortex

3、-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、STM32F107系列。12. STM32F103

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

5、tInit:将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程序通常分为两个文件,一个文件用于保存程序的声明,成为头文件,以.h为后缀。另一个用于保存程序的实现,称

6、为源文件,以.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. 定义结构体的格式一般为: Struct结构名 类型 变量名; . 结构变量;如果去掉结构变

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

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

9、dInputData(读取指定的GPIO端口输入)、GPIO_ReadOutputDataBit、GPIO_ReadOutputdata、GPIO_SetBits(设定指定的数据端口位)、GPIO_ResetBits(清除指定的数据端口位)、GPIO_WriteBits(设置或清除指定的数据端口位)、GPIO_Write(向指定GPIO端口写入数据)、GPIO_EXTILineConfig(选择GPIO管脚用作外部中断线路)3.*gpio使用流程:声明GPIO初始化结构体GPIO_InitTypeDef->使能GPIO端口时钟RCC_APB2PeriphClockCmd-> 填充G

10、PIO初始化结构体参数GPIO_Pin、GPIO_Speed、GPIO_Mode-> 完成GPIO端口设置GPIO_Init。4.闪烁灯程序流程图:GPIO配置GPIO_Config -> 输出低电平,点亮LED,GPIO_ResetBits-> 延时delay-> 输出高电平,熄灭LED,GPIO_SetBits第5章STM32单片机外部中断一、中断的相关概念1.中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。2. 中断的优先级:由中断的嵌套可以看出,不同事件的重要程度不同。重要的事件可以

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

12、断请求,进入中断服务程序的过程叫作中断响应;执行中断服务程序的过程叫作中断处理;中断服务程序执行完毕后回到主程序或者次一级别中断服务程序的过程叫作中断返回7. 中断系统:实现中断处理功能的软件、硬件系统称为中断系统二、中断控制器1.STM32F103的中断系统由嵌套中断向量控制器NVIC,外部中断/事件控制器EXTI,各外设中断控制部份2.配置软硬件中断/事件请求过程:硬件中断选择;硬件事件选择;软件中断/事件选择;外部中断/事件线路映射。图5-4(85页)三、中断执行过程和中断嵌套:优先级:抢占优先级高的先处理,抢占优先级相同,则响应优先级高的先执行。四、外部应用中断设计:(1)NVIC_P

13、riorityGroupConfig(设置优先级分组,抢占优先级和响应优先级)例:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)设置优先级分组为第一组(2)NVIC_Init(根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器)五、EXTI函数库:EXTI_Init(将外设EXTI寄存器重设为缺省值)、EXTI_GetFlagStatus(检查指定的EXTI线路标志位设置与否)、EXTI_ClearFlag(清除EXTI线路挂起标志位)、EXTI_GetITStatus(检查指定的EXTI线路触发请求发生与否)、EXTI_Cle

14、arITPendingBits(清除EXTI线路挂起位)。六、STM32中断的设计(1)NVIC设置流程:声明NVIC结构体NVIC_InitTypeDef S 选择中断分组NVIC_PriorityGroupConfig() 选择中断通道S.NVIC_IRQChannel设置优先抢占级S.NVIC_IRQChannelPreemptionPriority设置响应优先级S.NVIC_IRQChannelSubPriority中断使能S.NVIC_IRQChannelCmd 调用函数完成配置NVIC_Init()(2)GPIO外部中断端口配置流程图:声明GPIO和EXTI结构体GPIO_Init

15、TypeDef G EXTI_InitTypeDef E->GPIO设置->选择中断管脚GPIO_EXTILineConfig()-> 选择中断线路E.EXTI_Line-> 设置中断请求E.EXTI_Mode -> 设置中断触发方式E.EXTI_trigger -> 中断线路使能E.EXTI_LineCmd -> 完成设置EXTI_Init(3)中断服务程序处理流程图:进入中断-> 检测中断线请求EXTI_GetITStatus 中断处理内容Func()-> 清除中断信号挂起位EXTI_GetITStatus()-> 中断返回(4)

16、按键中断控制LED程序流程图:开始-> LED初始化配置LED_Config-> 按键初始化配置KEY_Config-> 输出低电平,点亮LEDGPIO_ResetBits-> 死循环等待按键中断while(1)进入中断 -> 检测中断线请求EXTI_GetITStatus-> LED状态取反GPIO_WriteBits 清除中段线路挂起位 EXTI_GetITStatus -> 跳出中断(5)中断服务程序主要完成什么工作:中段线路状态检测、中断处理内容、中断清除(6)Stm32最多支持84个中断16个优先级(7)32中断设计包括NVIC设计、中断端口

17、设置、终端服务程序第6章STM32通用定时器 1.STM定时器分类:2个高级控制定时器 TIM1 TIM8可分配6个通道的三相PWM发生器(多用于电机控制);4个通用定时器 TIM2 TIM3 TIM4 TIM5每个定时器有4个输入捕获/输出比较/PWM/脉冲计数;2个基本定时器TIM6 TIM7 主要用于产生DAC触发信号;还有两个看门狗定时器(窗口和独立)和一个系统滴答定时器。2.通用定时器的基本功能是定时和计数3.时钟的选择:内部时钟源(CK_INT)当TIMx_SMCR寄存器的SMS=0;外部时钟源模式1(外部输入引脚TIx) SMS=111;外部时钟源模式2(外部触发输入ETR) E

18、CE=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设置;定时器中断配置;中断服务程序7.led亮1秒灭1秒程序流程图:开始LED初始化配置(LED_Config-NVIC)初始化配置(TIM3_NVIC_Config)-定时器初始化配置(TIM3 _ Config)-输出

19、低电平,点亮LED(GPIO_ResetBits)- 输出高电平,点亮LED(GPIO_SetBits)-死循环等待中断进入中断-检测定时中断请求(TIM_GetITStatus())-是否则中断返回-中断处理内容,改变LED状态清楚定时中断标志(TIM_ClearITPendingBit)-中断返回8. 10通用定时器常用库函数 TIM_Cmd使能或失能TIMx外设TIM_ITConfig使能或者失能指定的TIM中断TIM_GetTStatus检查指定的TIM中断发生与否11TIM中断配置void TIM3_configTIM_TimeBaseInitTypeDef TIM_TIM_Base

20、Structure;/声明定时器时基结构体RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/开启定时器TIM1时钟TIM_TimeBaseStructure.TIM_Prescaler=(799-1);/设置预分频值TIM_TimeBaseStructure.TIM_CounterMode=TIM_CoundterMode_Up;/设置技术模式为向上TIM_TimeBaseStructure.TIM_Period=1000;/设置计数值TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);/完成时基设

21、置TIM_ITConfig(TIM3,TIM_IT_Update|TIM_IT_Trigger,ENABLE);/失能或者失能指定的TIM中断TIM_Cmd(TIM3,ENABLE);TIM_Period*(TIM_Prescaler+1)/系统时钟=中断时间9. 主要功能介绍:外部事件计数,输入捕获,输出比较,单脉冲输出,正交编码器,霍尔传感器输入,输出比较信号死区产生,刹车信号输入功能第七章1. 串行通信:是数据字节的各位一位一位的一次传送的通信方式。速度慢占用传输线条数少,适于远距离传输。2. 并行通信:数据字节各位同时传送的通信方式。速度快,占用传输线条数多,适用于近距离通信。3. 串

22、行通信方式:单工通信,半双工通信,全双工通信。4. 波特率:即数据的传输速度,串行通信中,每秒传送的二进制数的位数称为波特率。波特率的倒数是每一位数的传输时间。5. STM32的USART的结构特性:stm32由3-5个的全工的一步串行通信USART接口,可实现设备之间的串行数据传输。USART外部引脚包括接收数据输入(RX)、发送数据输出(TX)、清除发送(nCTS)、发送请求(nRTS)和发送器时钟输出(CK),通过这些引脚可以与其他外部设备通信。6. USART的基本配置流程:声明GPIO和USART初始化结构体(GPIO_InitTypeDef G USART_InitTypeDef

23、U)->开启串口、串口所用IO时钟(RCC_APB2PeriphClockCmd() )->设置IO引脚功能为复用推挽输出和浮空输出和浮空输入->设置波特率(U.USART_BandRate)->设置数据格式:数据位、停止位、校验位(U.USART_WordLength U.USART_StopBits U.USART_Parity)->设置串口模式(U.USART_Mode)->完成串口设置(USART_Init() )->使能串口(USART_Cmd() )。7. 串行通信接口抗干扰的方式:采用标准串行接口(RS-232C),TTL电平通信接口,R

24、S-485双机通信接口。第八章1 DMA:用来提供外设与外设之间、外设与寄存器之间、存储器与存储器之间的高速数据传输,无需CPU干预,数据可以通过DMA快速传输,节省CPU的资源2 DMA使用流程:NVIC设置,DMA模式及中断配置,中断服务。3 DMA的传输过程包括:DMA请求,DMA响应,DMA传输,DMA结束4 总线矩阵有两个主要特征:循环优先调度,多层结构和总线挪用。第九章模数转化器ADCADC性能指标:分辨率、量化误差、偏移误差、满刻度误差、线性度、绝对精度、相对精度、转换速率。按转换过程不同:ADC可以分为:逐次逼近性、双积分型、电压-频率变换型。第十一章SPI1.SPI接口定义:

25、他只需要4条线:串行时钟线(SCK),主机输入/从设备输出引脚(MIOS),主机输出/从设备输入引脚(MOSI),低电平有效的从基选择线。2.SPI是一个环形总线结构,由NSS,SCK,MISO,MOSI,构成,3.*结构体类型自定义:typedef struct Long num; Char name10; Char sex;STUDENT ;/定义结构体类型为STUDENTInt main() STUDENT stu1 stu0;/定义STUDENGT类型的变量stu1和数组stu4.*条件编译示例#include<stdio.h>#define DEBUG /此时#ifdef

26、 DEBUG为真/#define DEBUG 0 /此时为假Int main() #ifdef DEBUG Printf(“Debugging/n”); #esle Printf (“Not Debugging/n); #endif Printf(“Running/n”) System(“pause”) Return05.elif示例#include<stdio.h>#define TWOint main() #ifdef ONE Printf(“1/n”)#elif defined TWO Printf(“2/n”)#else Printf(“3/n”)#endifSystem(

27、“pause”)Return 0程序:void GPIO_Config(void)/GPIO配置GPIO_InitTypeDef GPIO_InitStructure;/声明GPIO初始化结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);/使能PD口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;/配置端口PD2GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/输出速率50MHZGPIO_InitStructure.GPIO_Mode = GPI

28、O_Mode_Out_PP;/推挽输出GPIO_Init(GPIOD, &GPIO_InitStructure);/调用函数使PD口初始化(AIN模拟输入,IN_FLOATING浮空输入,IPD下拉输入,IPU上拉输入,Out_OD开漏输出,Out_PP推挽输出,AF_OD 复用开漏输出,AF_PP 复用推挽输出)void key_Config(void)/按键中断配置 (还要有NVIC配置)GPIO_InitTypeDef GPIO_InitStructure;/声明GPIO初始化结构体EXTI_InitTypeDef EXTI_InitStructure;/结构体RCC_APB2P

29、eriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);/使能PA口时钟,并使能复用时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;/配置端口PA15GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;/上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);/调用函数使PA口初始化GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource15);/选择中断

30、管脚EXTI_InitStructure.EXTI_Line = EXTI_Line15;/中断线路EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;/中断请求EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;/下降沿触发 (Rising上升)EXTI_InitStructure.EXTI_LineCmd = ENABLE;/中断线使能EXTI_Init(&EXTI_InitStructure);/ 调用函数完成设置void NVIC_Config(void)/NVIC配置N

31、VIC_InitTypeDef NVIC_InitStructure;/声明结构体NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/选择中断分组NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn;/选择中断通道(EXTI9_5_IRQn,EXTI0_IRQnEXTI4_IRQn,TIM3_ IRQn)NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/设置抢占优先级NVIC_InitStructure.NVIC_IRQChannelSub

32、Priority = 0;/设置相响应优先级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/中断使能NVIC_Init(&NVIC_InitStructure);/ 调用函数完成中断设置void EXTI15_10_IRQHandler(void)/中断程序if(EXTI_GetITStatus(EXTI_Line15)!=RESET)/判断是否中断/加上中断后的程序EXTI_ClearITPendingBit(EXTI_Line15);/清除中断标志位void USART_Config(void)/串口通信配置GPIO_InitType

33、Def GPIO_InitStructure;/声明结构体USART_InitTypeDef USART_InitStructure;/声明结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);/使能PA ,USART1口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;/配置端口PA9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/输出速率50MHZGPIO_InitStructure.GPIO_Mode

34、= GPIO_Mode_AF_PP;/推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);/调用函数使PA口初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;/配置端口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 = USART_Parity_

温馨提示

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

评论

0/150

提交评论