STM32考试复习(完整版)

上传人:101****457 文档编号:53786608 上传时间:2018-09-05 格式:PPT 页数:58 大小:2.22MB
返回 下载 相关 举报
STM32考试复习(完整版)_第1页
第1页 / 共58页
STM32考试复习(完整版)_第2页
第2页 / 共58页
STM32考试复习(完整版)_第3页
第3页 / 共58页
STM32考试复习(完整版)_第4页
第4页 / 共58页
STM32考试复习(完整版)_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《STM32考试复习(完整版)》由会员分享,可在线阅读,更多相关《STM32考试复习(完整版)(58页珍藏版)》请在金锄头文库上搜索。

1、复习,嵌入式系统定义;与通用计算机系统的区别 以应用为中心、以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。嵌入式系统的组成 嵌入式处理器;外围设备;操作系统;应用软件嵌入式处理器分类 微控制器;微处理器;嵌入式DSP ;片上系统,绪论,GPIO,STM32的GPIO有多种工作模式: 输入浮空;输入上拉;输入下拉;模拟输入;推挽输出;推挽复用;开漏输出;开漏复用。 要知道每种模式具体用在什么场合。GPIO的编程(可能有大题(编程题) 用某个IO引脚控制一个LED灯,使其闪烁。要求画出电路图,并编程。,STM32编写程

2、序时要用到哪个模块首先要开启那个模块的时钟void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE| RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG , ENABLE); /打开GPIO时钟 ,STM32 GPIO例程讲解,void G

3、PIO_Configuration(void) /I/O口线配置 GPIO_InitTypeDef GPIO_InitStructure;/配置输出脚PC0控制LED灯GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, ,STM32 GPIO例程讲解,写0: GPIO_ResetBits (GPIOB, GPIO_Pin_5);写1: G

4、PIO_SetBits(GPIOB, GPIO_Pin_5);读: GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5); 返回值是1(Bit_SET)或者0(Bit_RESET);,STM32 GPIO例程讲解,EXTI(外部中断),中断的定义 CPU在正常执行程序的过程中,突然发生了一些需要紧急处理的事件,这些事件通过某种方式触发引起CPU暂停当前正在执行的程序,转去处理突发事件,待突发事件处理完毕后,CPU再返回继续执行刚刚被暂停的程序的过程就称之为中断。,STM32中断优先级分组,优先级越高,数值越低! 抢占优先级相同的任务,响应优先级高的先响应,但不能互相

5、抢占;抢占优先级不同的,可以抢占低优先级的CPU。,STM32外部中断的来源,STM32和I/O口有关的中断一共有16个:,GPIO的管脚GPIOx.0GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线150。这样每个中断线对应了最多7个IO口,以线0为例:它对应了GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0。而中断线每次只能连接到1个IO口上,这样就需要通过配置来决定对应的中断线配置到哪个GPIO上了。,void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MH

6、Z RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /打开AFIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG , ENABLE); /打开GPIO时钟 ,STM32外部中断例程讲解,void GPIO_Configur

7、ation(void) /输入输出管脚配置 GPIO_InitTypeDef GPIO_InitStructure;/配置输出脚PC0控制LED灯GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOC, ,STM32外部中断例程讲解,void NVIC_Configuration(void) /嵌套向量中断控制器配置 NVIC_InitType

8、Def NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/选择优先级组别NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; /选择中断通道:EXTI线0中断,因为按键连接的是PA0脚NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /0级抢占式优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /0级副优先级NVIC_InitStructure

9、.NVIC_IRQChannelCmd = ENABLE; /使能引脚作为中断源NVIC_Init( /调用NVIC_Init固件库函数进行设置 ,STM32外部中断例程讲解,void EXTI_Configuration(void) /调用固件库中的GPIO_EXTILineConfig函数,/其中两个参数分别是中断口和中断口对应的引脚号GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);EXTI_InitStructure.EXTI_Line = EXTI_Line0; /将中断映射到中断/事件源Line0EXTI_Init

10、Structure.EXTI_Mode = EXTI_Mode_Interrupt; /中断模式EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling /设置为下降沿中断EXTI_InitStructure.EXTI_LineCmd = ENABLE; /中断使能,即开中断EXTI_Init( /调用EXTI_Init固件库函数,将结构体写入EXTI相关寄存器中 ,STM32外部中断例程讲解,void EXTI0_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line0) != RESET)/将LED1

11、的状态反转GPIO_WriteBit(GPIOC, GPIO_Pin_0, (BitAction)(1- GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_0);/清中断EXTI_ClearITPendingBit(EXTI_Line0); ,STM32外部中断例程讲解,注意:中断服务函数都包含在“stm32f10x_it.c”文件中,用的时候只需添加指令即可!,串行通信基础,数据通信方式:并行通信与串行通信 并行通信:一次传输多位的数据特点:速度快,适合近距离传输串行通信: 数据一位一位地发送 特点:硬件简单,占用I/O口资源少,适合距离远,速度要求不高的场合,波

12、特率,单位时间内传送的信息量。以每秒传送的位为单位: 电传机:10字符/秒,1个字符11位, 波特率为:1011=110(波特),void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZ RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA,ENABLE); /外设时钟配置 ,STM32 串口例程讲解,/* * Name : UART1_GPIO_Configuration * Deion : Configures the uart1 GPIO ports.

13、 * Input : None * Output : None * Return : None */ void UART1_GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; / Configure USART1_Tx as alternate push-pull GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mod

14、e_AF_PP; GPIO_Init(GPIOA, ,STM32 串口例程讲解,/* * Name : UART1_Configuration */ void USART_Configuration(void) USART_InitTypeDef USART_InitStructure; /* Configure the USART1 synchronous paramters */ USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USA

15、RT_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /* Configure USART1 basic and asynchronous paramter

16、s */ USART_Init(USART1, ,STM32 串口例程讲解,/* * Name : NVIC_Configuration * Deion : Configures NVIC and Vector Table base location. * Input : None * Output : None * Return : None */ void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init( ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号