欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    STM32考试复习课件.ppt

    • 资源ID:1288909       资源大小:2.02MB        全文页数:58页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STM32考试复习课件.ppt

    复习,复习,嵌入式系统定义;与通用计算机系统的区别以应用为中心、以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。嵌入式系统的组成嵌入式处理器;外围设备;操作系统;应用软件嵌入式处理器分类微控制器;微处理器;嵌入式DSP ;片上系统,绪论,嵌入式系统定义;与通用计算机系统的区别绪论,GPIO,STM32的GPIO有多种工作模式:输入浮空;输入上拉;输入下拉;模拟输入;推挽输出;推挽复用;开漏输出;开漏复用。要知道每种模式具体用在什么场合。GPIO的编程(可能有大题(编程题)用某个IO引脚控制一个LED灯,使其闪烁。要求画出电路图,并编程。,GPIOSTM32的GPIO有多种工作模式:,STM32编写程序时要用到哪个模块首先要开启那个模块的时钟void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZ 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 GPIO例程讲解,STM32编写程序时要用到哪个模块首先要开启那个模块的时钟S,void GPIO_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例程讲解,void GPIO_Configuration(void),写0:GPIO_ResetBits (GPIOB, GPIO_Pin_5);写1:GPIO_SetBits(GPIOB, GPIO_Pin_5);读:GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);返回值是1(Bit_SET)或者0(Bit_RESET);,STM32 GPIO例程讲解,写0:STM32 GPIO例程讲解,EXTI(外部中断),中断的定义CPU在正常执行程序的过程中,突然发生了一些需要紧急处理的事件,这些事件通过某种方式触发引起CPU暂停当前正在执行的程序,转去处理突发事件,待突发事件处理完毕后,CPU再返回继续执行刚刚被暂停的程序的过程就称之为中断。,EXTI(外部中断)中断的定义CPU在正常执行程序的过程中,STM32中断优先级分组,优先级越高,数值越低!抢占优先级相同的任务,响应优先级高的先响应,但不能互相抢占;抢占优先级不同的,可以抢占低优先级的CPU。,STM32中断优先级分组优先级越高,数值越低!,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上了。,STM32外部中断的来源STM32和I/O口有关的中断一共有,void RCC_Configuration(void)SystemInit(); /系统时钟配置为72MHZRCC_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 RCC_Configuration(void)ST,void GPIO_Configuration(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 GPIO_Configuration(void),void NVIC_Configuration(void) /嵌套向量中断控制器配置 NVIC_InitTypeDef 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.NVIC_IRQChannelCmd = ENABLE; /使能引脚作为中断源 NVIC_Init( /调用NVIC_Init固件库函数进行设置,STM32外部中断例程讲解,void NVIC_Configuration(void),void EXTI_Configuration(void) /调用固件库中的GPIO_EXTILineConfig函数, /其中两个参数分别是中断口和中断口对应的引脚号 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = EXTI_Line0; /将中断映射到中断/事件源Line0 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /中断模式 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling /设置为下降沿中断 EXTI_InitStructure.EXTI_LineCmd = ENABLE; /中断使能,即开中断 EXTI_Init( /调用EXTI_Init固件库函数,将结构体写入EXTI相关寄存器中,STM32外部中断例程讲解,void EXTI_Configuration(void)S,void EXTI0_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line0) != RESET) /将LED1的状态反转 GPIO_WriteBit(GPIOC, GPIO_Pin_0, (BitAction)(1- GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_0); /清中断 EXTI_ClearITPendingBit(EXTI_Line0); ,STM32外部中断例程讲解,注意:中断服务函数都包含在“stm32f10 x_it.c”文件中, 用的时候只需添加指令即可!,void EXTI0_IRQHandler(void)STM,串行通信基础,数据通信方式:并行通信与串行通信并行通信:一次传输多位的数据 特点:速度快,适合近距离传输串行通信: 数据一位一位地发送特点:硬件简单,占用I/O口资源少,适合距离远,速度要求不高的场合,串行通信基础 数据通信方式:并行通信与串行通信,波特率,单位时间内传送的信息量。以每秒传送的位为单位:电传机:10字符/秒,1个字符11位, 波特率为:1011=110(波特),波特率 单位时间内传送的信息量。以每秒传送的位为单位:,void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZRCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA,ENABLE); /外设时钟配置,STM32 串口例程讲解,void RCC_Configuration(void)ST,/* Name : UART1_GPIO_Configuration* Deion : Configures the uart1 GPIO ports.* 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_Mode_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;USART_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 paramters */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(,STM32 串口例程讲解,/*,void USART1_IRQHandler(void) if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) /将数据回送至超级终端 USART_SendData(USART1, USART_ReceiveData(USART1); /等待数据发送完毕 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)=RESET);/等待发送完成 USART_ClearFlag(USART1,USART_FLAG_TXE); /清零发送完成标志位/等待发送完成 USART_ClearITPendingBit(USART1,USART_IT_RXNE);,STM32 串口例程讲解,void USART1_IRQHandler(void)ST,直接存储器存取DMA,直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速的无需CPU干预的数据传输。把数据传输的任务交给DMA执行,CPU就可以去做别的事情了,提高了CPU的工作效率。,直接存储器存取DMA直接存储器存取(DMA)用来提供在外设和,Stm32有两个DMA控制器,其中DMA1有7个通道,DMA2有5个通道,每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。 DMA的通道不是随便使用的,有一个预先的分配。,DMA通道和请求,Stm32有两个DMA控制器,其中DMA1有7个通道,DMA1的通道分配,DMA1的通道分配,DMA2的通道分配,DMA2的通道分配,int main(void) RCC_Configuration(); /系统时钟设置 GPIO_Configuration();/端口初始化 USART_Config(USART1);/串口1初始化 MYDMA_Config(DMA1_Channel4,(u32) while (1);,例程:串口1通过DMA进行数据的发送,void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZ,DMA编程例程,int main(void)例程:串口1通过DMA进行数据的,void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE); /A口时钟配置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; /USART1 TX GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /复用推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, /A端口 ,DMA编程例程,void GPIO_Configuration(void)D,void USART1_Config(void)USART_InitTypeDef USART_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 , ENABLE);/串口时钟使能 USART_InitStructure.USART_BaudRate = 115200; /速率115200 USART_InitStructure.USART_WordLength = USART_WordLength_8b;/数据位8位 USART_InitStructure.USART_StopBits = USART_StopBits_1; /停止位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;/收发模式 USART_Init(USART1, ,DMA编程例程,void USART1_Config(void)DMA编程例,void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr) DMA_InitTypeDef DMA_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); /* Enable DMA clock */DMA_InitStructure.DMA_PeripheralBaseAddr = cpar; /外设基地址DMA_InitStructure.DMA_MemoryBaseAddr = cmar; /内存基地址DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;/传送数据方向DMA_InitStructure.DMA_BufferSize = cndtr; /传送数据的大小DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; /外设地址不变DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; /内存地址递增DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; /外设数据宽度DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;/内存数据宽度DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; /不循环DMA_InitStructure.DMA_Priority = DMA_Priority_High; /DMA通道的优先级DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA_CHx, ,DMA编程例程,void MYDMA_Config(DMA_Channel_,30,AD模数模块(Analog-to-Digital Converter),即模拟/数字转换器,主要功能是将连续变量的模拟信号转换为离散的数字信号。由于单片机只能处理数字信号,因此,在对外部的模拟信号进行分析、处理的过程中,必须使用ADC模块将外部的模拟信号转换成单片机所能处理的数字信号。,ADC模数转换模块,30AD模数模块(Analog-to-Digital Co,分辨率,A/D转换器能分辨的最小模拟电压。例如,某款A/D参考电压是5V,输出8位二进制数可以分辨的最小模拟电压为5V2820mV;而输出12位二进制数可以分辨的最小模拟电压为5V2121.22mV。,输入模拟量与输出数字量之间的关系,STM32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源(温度传感器、内部参考电压)。,ADC模数转换模块,分辨率 A/D转换器能分辨的最小模拟电压。例,ADC编程步骤,1、开启PA口时钟和ADC1时钟,ADC编程步骤1、开启PA口时钟和ADC1时钟,2、复位ADC1,同时设置ADC1分频因子,ADC时钟复位的方法是:ADC_DeInit(ADC1);,分频因子要确保ADC1的时钟(ADCCLK)不要超过14Mhz。这个我们设置分频因子位6,时钟为72/6=12MHz,库函数的实现方法是:,RCC_ADCCLKConfig(RCC_PCLK2_Div6);,2、复位ADC1,同时设置ADC1分频因子ADC时钟复位的方,3、初始化GPIO和ADC1参数,GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;/模拟输入GPIO_Init(GPIOA, /初始化GPIOA.1,3、初始化GPIO和ADC1参数GPIO_InitStruc,ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;/ADC工作模式:独立模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;/AD单通道模式ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;/AD单次转换模式ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/转换由软件而不是外部触发启动ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/ADC数据右对齐ADC_InitStructure.ADC_NbrOfChannel = 1;/顺序进行规则转换的ADC通道的数目1ADC_Init(ADC1, /根据指定的参数初始化外设ADCx,ADC_InitTypeDef ADC_InitStruct,4、使能ADC并校准,使能ADC的方法:ADC_Cmd(ADC1, ENABLE);/使能指定的ADC1校准包括复位校准和AD校准执行复位校准的方法是:ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1);/等待复位校准结束执行ADC校准的方法是:ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1);/等待AD校准结束,4、使能ADC并校准使能ADC的方法:,5、设置规则组的通道,启动A/D,读取A/D结果,我们这里是规则序列中的第1个转换,同时采样周期为239.5,所以设置为:ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );软件开启ADC转换的方法:ADC_SoftwareStartConvCmd(ADC1, ENABLE);/使能指定的ADC1的软件转换启动功能开启转换之后,就可以获取转换ADC转换结果数据,方法是:ADC_GetConversionValue(ADC1);,5、设置规则组的通道,启动A/D,读取A/D结果我们这里是规,DAC数模转换模块,DAC数模转换模块,/* 名 称:void RCC_Configuration(void)* 功 能:时钟配置* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无 */ void RCC_Configuration(void) SystemInit();/系统时钟配置,/*,void DAC_Init(void) GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitType; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE); /外设时钟使能 /*GPIO的配置*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; GPIO_Init(GPIOA,void DAC_Init(void),void DAC1_Set_Vol(u16 vol) float temp; temp=vol; temp/=1000; temp=temp*4095/3.3; DAC_SetChannel1Data(DAC_Align_12b_R,(u16)temp);int main(void) RCC_Configuration(); /系统时钟配置 DAC_Init(); DAC1_Set_Vol(2000); while (1);,void DAC1_Set_Vol(u16 vol),计数器模式 TIM2-TIM5可以由向上计数、向下计数、中央对齐模式。,STM32定时器简介,向上计数模式:计数器从0计数到设定的数值,然后重新从0开始计数并且产生一个计数器溢出事件,这个事件也称为更新事件。向下计数模式:计数器从设定的数值开始向下计数到0,然后自动从设定的数值重新向下计数,并产生一个向下溢出事件,这个事件也称为更新事件。中央对齐模式(向上/向下计数):计数器从0开始计数到设定的数值,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器下溢事件;再从0开始重新计数。,计数器模式STM32定时器简介 向上计数模式:计数,STM32定时器简介,STM32定时器简介,(1) RCC配置;void RCC_Configuration(void) SystemInit(); /系统时钟配置为72MHZ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /定时器3 时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG , ENABLE); /外设时钟使能,STM32 定时器例程讲解,(1) RCC配置;STM32 定时器例程讲解,(2) I/O口线配置void GPIO_Config(void) GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;/选择第11个引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /配置为推挽输出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /口线翻转速度最高为50MHz GPIO_Init(GPIOG, ,STM32 定时器例程讲解,(2) I/O口线配置STM32 定时器例程讲解,(3)定时器初始化void TIM3_Init(u16 arr,u16 psc) TIM_TimeBaseInitTypeDef TIM3_TimeBaseStructure; TIM3_TimeBaseStructure.TIM_Period =arr;/设置自动重装载寄存器的值(设置定时时间) TIM3_TimeBaseStructure.TIM_Prescaler = psc;/设置预分频器的分频值 TIM3_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;/计数器向上计数模式 TIM3_TimeBaseStructure.TIM_ClockDivision = 0 x0;/设置时钟分割 TIM_TimeBaseInit(TIM3, /启动定时器3 ,STM32 定时器例程讲解,(3)定时器初始化STM32 定时器例程讲解,(4)NVIC初始化void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /中断优先级分组(0组) NVIC_InitStructure.NVIC_IRQChannel =TIM3_IRQn ;/选择定时器3中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/设置抢占优先级的大小 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;/设置从优先级的大小 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/中断使能 NVIC_Init( ,STM32 定时器例程讲解,(4)NVIC初始化STM32 定时器例程讲解,(5)定时器中断void TIM3_IRQHandler(void) static u8 flag=0; if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) /检查TIM3更新中断是否发生 if(flag) GPIO_ResetBits(GPIOG, GPIO_Pin_11); flag=0; else GPIO_SetBits(GPIOG, GPIO_Pin_11); flag=1; TIM_ClearITPendingBit(TIM3, TIM_IT_Update);/清除TIM3更新中断标志,STM32 定时器例程讲解,(5)定时器中断STM32 定时器例程讲解,PWM,PWM(脉宽调制):只对一个方波序列信号的占空比按要求进行调制,而不改变信号的幅度和周期。,占空比为10%的PWM输出0.9V的模拟信号,供电电压为9V,占空比为50%的PWM输出4.5V的模拟信号,占空比为70%的PWM输出6.3V的模拟信号,调制频率为周期的倒数。要想取得调光灯(保持点亮)的效果,必须提高调制频率。,PWM PWM(脉宽调制):只对一个方波序列信号的占空比按,PWM的生成过程,在STM32中,每一个通道都有一个捕获/比较寄存器CCRx,生成PWM时将计数器的值与捕获/比较寄存器中的值进行比较。计数器从0开始向上计数,起始时,通道输出一个固定的电平(高电平或低电平),当计数到与捕获/比较寄存器中的值相等时,电平翻转;当计数到与自动重载寄存器中的值相等时,电平再次翻转,计数器从0开始重新计数。,PWM的生成过程 在STM32中,每一个通道都有一个捕,RTC工作原理:概述,RTC(Real Time Clock),即实时时钟,它的主要作用是为系统提供当前的时间和日期。,RTC工作原理:概述RTC(Real Time Clock),I2C串行总线概述,I2C总线是PHLIPS公司推出的一种简单、双向二线制同步串行总线。,I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。,I2C串行总线概述 I2C总线是PHLIPS公司推出的,I2C串行总线设备,I2C串行总线设备,总线的寻址,I2C总线的寻址,地址信号:为从机地址,占7位,如下表所示,称之为“寻址字节”,各字段含义如下:,器件地址(DA3-DA0):是IIC总线接口器件固有的地址编码,由器件生产厂家给定。如IIC总线EEPROM AT24C的器件地址为1010等。引脚地址(A2、A1、A0):由IIC总线接口器件的地址引脚A2、A1、A0的高低来确定,接电源者为1,接地者为0。读写控制位(R/ W):1表示主设备读,0表示主设备写。7位地址和读写控制位组成1个字节。,总线的寻址I2C总线的寻址地址信号:为从机地址,占7位,如,起始和终止信号,SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。,起始、终止信号,起始和终止信号 SCL线为高电平期间,SDA线,串行E2PROM的扩展,串行E2PROM典型产品,AT24C01:128字节(1288位) AT24C02:256字节(2568位) AT24C04:512字节(5128位)AT24C08: 1K字节( 1K8位)AT24C16: 2K字节( 2K8位),ATMEL公司的AT24C系列:,串行E2PROM的扩展 串行E2PROM典型产品 AT,使用SPI通信需要4个引脚,分别为:,作SPI主机时,SSEL要接上拉电阻,SPI,使用SPI通信需要4个引脚,分别为:引脚名称,看门狗,看门狗,

    注意事项

    本文(STM32考试复习课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开