自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 红外遥控器实验

红外遥控器实验 1、 红外遥控的编码目前广泛使用的是:NEC Protocol 的PWM(脉冲宽度调制)和Philips RC-5 Protocol 的PPM(脉冲位置调制)。 2、NEC协议特征 3、NEC码位定义 4、硬件连接 5、程序设计思路

2020-06-14 16:36:02 447

原创 DMA实验程序

DMA实验程序 1、 2、参数配置

2020-06-14 16:32:00 418

原创 DMA基本原理

常用的外设DMA使能库函数 DMA基本原理 1、作用:为CPU减负 2、DMA框图 3、 1、每个通道都直接连接专用的硬件DMA请求,都支持软件触发,这些通过软件来配置。 2、在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求0优先于请求1,依此类推) 。 3、独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源 和目标地址必须按数据传输宽度对齐。 4、 支持循环的缓冲器管理 5、 每个通道都有3个事件标志(DMA 半传输,D

2020-06-14 16:29:12 1156

原创 PWM DAC

PWM DAC硬件## PWM DAC 1、PWM DAC原理 PWM本质上其实就是是一种周期一定,而高低电平占空比可调的方波。 其中:T是单片机中计数脉冲的基本周期,也就是STM32定时器的计数频率的倒数。N是PWM波一个周期的计数脉冲个数,也就是STM32的ARR-1的值。n是PWM波一个周期中高电平的计数脉冲个数,也就是STM32的CCRx的值。 2、PWM DAC硬件 二阶RC滤波截止频率计算公式为: f=1/2πRC ...

2020-06-14 16:19:13 629

原创 数字模拟转换DAC

数字模拟转换DAC 1、局限性:只有大容量的STM32F10x才具有DAC功能, 2、数模转换原理 STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

2020-06-07 17:48:29 1034

原创 光敏传感器简介

光敏传感器 1、简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等。光传感器是目前产量最多、应用最广的传感器之一,它在自动控制和非电量电测技术中占有非常重要的地位。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测

2020-06-07 17:40:02 5544 1

原创 内部温度传感器

内部温度传感器 1、结构框图 2、STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是17.1μs。 STM32的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右。 注意:内部温度传感器更适合于检测温度的变化,而不是测量 绝对温度。如果需要测量绝度温度,应该使用一个外部温度传感器。 3、第一个地方,我们要使用STM32的内部温度传感器

2020-06-07 17:35:41 619

原创 ADC模数转换实验

ADC模数转换实验 1、ADC初始化函数ADC_Init void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); 2、ADC使能函数 ADC_Cmd(); void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState); 3、ADC使能软件转换函数 ADC_SoftwareStartConvCmd void ADC_SoftwareStartConvCmd(ADC_TypeDe

2020-06-05 19:23:15 1040 1

原创 ADC基本原理

ADC基本原理 1、ADC即为典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 2、对于32: (1)ADC转换时间:最大转换速率 1us。(最大转换速度为1MHz,在ADCCLK=14M,采样周期为1.5个ADC时钟下得到。) (2)12位逐次逼近型的模拟数字转换器。 3、32通道组: (1)规则通道组:相当正常运行的程序。最多16个通道。 规则通道和它的转换顺序在ADC_SQRx寄存器中选择,规则 组转换的总数应写入ADC_SQR1寄存器的L[3:0]中 (2) 注入通道组:相当于中断

2020-05-31 17:40:39 3706

原创 OLED显示实验

OLED显示实验 1、OLED模块工作模式选择 4种模式通过模块的BS1/BS2设置,BS1/BS2的设置与模块接口模式的关系如表所示: 2、并行接口信号线说明 CS:OLED片选信号。 WR:向OLED写入数据。 RD:从OLED读取数据。 D[7:0]:8位双向数据线。 RST(RES):硬复位OLED。 DC:命令/数据标志(0,读写命令;1,读写数据)。 注意:1.读数据:在RD的上升沿, 使数据锁存到数据线(D[7:0])上; 2.写数据:在WR的上升沿,使数据写入到SSD1306里面; 3、OL

2020-05-31 17:29:40 2245

原创 输入捕获实验

输入捕获实验 1、对于其工作原理: 通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。 2、工作过程 (1)设置输入捕获滤波器(用来设置输入频率和数字滤波器长度) (2)设置输入捕获极性 CC1P:输入\捕获1输出极性 (3)设置输入捕获映射通道 (4)设置输入捕获分频器 (5)捕获到有效信号可以开启中断 3、输入捕获通道的初始化函数 (1)通道极性设置独立函数: v

2020-05-31 17:20:22 1712

原创 PWM输出实验

PWM输出实验 1、先了解PWM的工作过程 2、ARR决定周期 CCRx决定占空比 3、PWM模式1 & PWM模式2 寄存器TIMx_CCMR1的OC1M[2:0]位来分析: 4、 void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); 5、PWM输出库函数概述 (1)设

2020-05-24 16:48:43 629

原创 定时器中断实验操作

定时器中断实验 1、先了解定时器的工作过程 2、计数器时钟可以由下列时钟源提供: 内部时钟(CK_INT) 外部时钟模式1:外部输入脚(TIx) 外部时钟模式2:外部触发输入(ETR) 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。 3、定时器中断实验相关寄存器 (1)计数器当前值寄存器CNT (2)预分频寄存器TIMx_PSC (3)自动重装载寄存器(TIMx_ARR) 4、通用定时器常用寄存器和库函数 (1

2020-05-24 16:10:41 821

原创 STM通用定时器基本原理

通用定时器基本原理 1、32的8个定时器 2、对于通用定时器4个独立通道的作用: 输入捕获 输出比较 PWM 生成(边缘或中间对齐模式) 单脉冲模式输出 3、用途对于通用定时器来说: 测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。 4、注意点: 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 5、对于通用定时器的计数模式:向上,向下,向上向下三种。 ...

2020-05-19 17:34:52 895

原创 STM32外部中断实验

外部中断实验 1、32的每一个IO口都可作为外部中断输入 2、相关函数的定义 (1)初始化IO口为输入。 GPIO_Init(); (2)开启IO口复用时钟。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); (3)设置IO口与中断线的映射关系。 void GPIO_EXTILineConfig(); (4)初始化线上中断,设置触发条件等。 EXTI_Init(); (5)配置中断分组(NVIC),并使能中断。 NVIC_Init(); 对前五个的实际程

2020-05-17 19:29:53 724

原创 STM32串口实验基础

STM32串口实验

2020-05-16 21:27:16 218

原创 NVIC中断优先级管理

NVIC中断优先级管理 1、中断管理方法: 对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。 2、NVIC中断优先级分组 (1)分组配置在寄存器 分组配置是在寄存器SCB->AIRCR中配置: 3、中断设置相关寄存器 _IO uint8_t IP[240]; //中断优先级控制的寄存器组 __IO uint32_t ISER[8]; //中断使能寄存器组 __IO uint32_t ICER[8]; //中断失能寄存器组 __IO uint32_t ISPR

2020-05-15 18:56:50 644

原创 STM32时钟系统

STM32时钟系统 重要的知识点 STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。   ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。   ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率   范围为4MHz~16MHz。      ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。 WDG      ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC      ⑤、PLL为锁相环倍频

2020-05-15 17:52:44 124

原创 STM32按键GPIO输入

STM32按键GPIO输入 效果:按键控制灯亮度翻转。 具体程序选段: 1、主函数 2、综合的是否支持连续按键(1为支持,0为不支持) 3、初始化按键 4、初始化LED

2020-05-14 20:06:10 189

原创 STM32跑马灯

STM32跑马灯 2020,05,13 实现的效果:小鸟归巢,循环,两边归一 程序代码: 1、可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样。 2、GPIO_InitH函数初始化定义的样例如下 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0–>PB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP

2020-05-14 11:25:24 784

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除