STM32F1与STM32CubeIDE编程实例NEC协议红外接收与解码
STM32F1与STM32CubeIDE编程实例-NEC协议红外接收与解码NEC协议红外接收与解码1、红外遥控及红外遥控协议介绍红外线遥控(IR Remote)是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易于实现等显着优点。 它被许多电子设备,尤其是家用电器广泛使用。
红外线遥控,越来越多地应用于计算机系统。 同类产品的红外遥控器可以有相同的遥控频率或遥控码,不会出现遥控信号“过门(cross-door)”的情况。 目前广泛使用的红外遥控代码:NEC协议的PWM(脉冲宽度调制)和飞利浦RC-5协议的PPM(脉冲位置调制)。本文使用的是NEC Protocol的PWM协议。
1.1 NEC协议介绍1)NEC协议具有以下特点:
8位地址和8位指令长度;
地址和命令的两次传输(保证可靠性)
PWM脉宽调制,由红外载波0”和“1”的占空比表示;
载波频率为38Khz;
位时间为 1.125ms 或 2.25ms。
2)NEC 代码的位定义
一个脉冲对应一个560us的连续载波。逻辑1传输需要2.25ms(56.5us脉冲+1687.5us低电平);逻辑0 ...
STM32F1与STM32CubeIDE编程实例PWM驱动蜂鸣器生产旋律
STM32F1与STM32CubeIDE编程实例-PWM驱动蜂鸣器生产旋律PWM驱动蜂鸣器生产旋律蜂鸣器或蜂鸣器是一种音频信号装置, 可以是机械的、机电的或压电的(简称压电)。其主要功能是将信号从音频转换为声音。 一般通过直流电压供电,用于定时器、报警器、打印机、报警器、电脑等。根据不同的设计,它可以产生不同的声音,如闹钟、音乐、铃声和警笛。
蜂鸣器又分为有源蜂鸣器和无源蜂鸣器。本次实例使用无源蜂鸣器,如上图所示。
1、蜂鸣器配置开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与STM32CubeIDE快速入门-USART/UART串口通信
本次实例通过定时器的PWM功能驱动蜂鸣器。通过指定PWM输出时间长短和调整PWM输出频率,生成不同的声音(旋律)。配置如下:
在前面的文章中,对定时器的PWM功能做也详细的介绍,请参考:
STM32F1与STM32CubeIDE快速入门-定时器PWM模式
STM ...
STM32F1与STM32CubeIDE编程实例TM1637驱动4位7段数码管
STM32F1与STM32CubeIDE编程实例-TM1637驱动4位7段数码管TM1637驱动4位7段数码管1、TM1637介绍TM1637 是一种带键盘扫描接口的LED(发光二极管显示器) 驱动控制专用电路, 内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉、微波炉及小家电产品的显示屏驱动。
在前面的文章中,对TM1637的驱动做了详细的描述,请参考:
ESP32-IDF开发实例-传感器模块编程-TM1637数码管
Arduino与Proteus仿真实例-TM1637驱动4位7段数码管仿真
2、TM1637配置开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与STM32CubeIDE快速入门-USART/UART串口通信
本次实例的TM1637配置如下:
3、TM1637驱动实现1)基本定义
123456789101112131 ...
STM32F1与STM32CubeIDE编程实例74HC595驱动4位7段数码管
STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管74HC595驱动4位7段数码管1、74HC595介绍74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出。移位寄存器和存储寄存器都有独立的时钟。该器件具有串行输入 (DS) 和串行输出 (Q7S) 以启用级联和异步复位 MR 输入。 MR 上的低电平将复位移位寄存器。数据在 SHCP 输入的低电平到高电平转换时移位。移位寄存器中的数据在 STCP 输入从低电平到高电平转换时传输到存储寄存器。如果两个时钟连接在一起,移位寄存器将始终比存储寄存器早一个时钟脉冲。只要输出使能输入 (OE) 为低电平,存储寄存器中的数据就会出现在输出端。 OE 上的高电平会导致输出呈现高阻抗关断状态。 OE 输入的操作不会影响寄存器的状态。输入包括钳位二极管。这使得可以使用限流电阻将输入接口连接到超过 VCC 的电压。
在前面的文章中,对74HC595及其使用做了详细的介绍,请参考:
8051单片机Proteus仿真与开发实例-74HC595移位寄存器驱动仿真
Ar ...
STM32F1与STM32CubeIDE编程实例MAX7219驱动8位7段数码管基于GPIO
STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于GPIO)MAX7219驱动8位7段数码管(基于GPIO)1、MAX7219介绍MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(μPs)连接至多达8位的7段数字LED显示器、条形图显示器或64个独立LED。 片上包括 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器以及存储每个数字的 8x8 静态 RAM。 只需要一个外部电阻来设置所有 LED 的段电流。 MAX7221 与 SPI™、QSPI™ 和 MICROWIRE™ 兼容,并具有限摆率的段驱动器以降低 EMI。
一个方便的 4 线串行接口连接到所有常见的 μP。 可以在不重写整个显示的情况下寻址和更新单个数字。 MAX7219还允许用户为每个数字选择code-B解码或不解码。
这些器件包括一个 150μA 低功耗关断模式、模拟和数字亮度控制、一个允许用户显示 1 到 8 位数字的扫描限制寄存器,以及一个强制所有 LED 亮起的测试模式。
MAX7219具有如下特性:
10 ...
STM32F1与STM32CubeIDE编程实例MAX7219驱动8位7段数码管基于SPI
STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于SPI)MAX7219驱动8位7段数码管(基于SPI)在前面的文章中,我们实现了纯GPIO方式通过MAX7219驱动8位7段数码管。由于MAX7219支持SPI、QSPI接口,最大支持10MHz的通信速率,因此可以通过SPI方式驱动MAX7219。在这里,将详细介绍如何实现MAX7219的SPI方式驱动。
在前面的文章中对MAX7219的驱动及使用做了详细的介绍,请参考:
Arduino与Proteus仿真实例-MAX7219级联驱动多个8x8LED点阵仿真
Arduino与Proteus仿真实例-MAX7219单个8x8LED点阵驱动仿真
Arduino与Proteus仿真实例-MAX7219驱动8位7段数码管仿真
8051单片机Proteus仿真与开发实例-MAX7219驱动8位7段数码管仿真
Arduino与JavaScript开发实例-数码管显示控制-基于Max7219
Arduino与JavaScript开发实例-LED点阵显示控制(Max7219控制器)
1、MAX7219配置 ...
STM32F1与STM32CubeIDE编程实例315M超再生无线遥控模块驱动
STM32F1与STM32CubeIDE编程实例-315M超再生无线遥控模块驱动315M超再生无线遥控模块驱动1、315M遥控模块介绍315MHz遥控是一款超再生无线电通信模块和无线电遥控接收器组成的套件。一般采用2272-M4解码芯片,具有信号稳定、发射距离远、应用简单的特点。
315M模块集成了LC振荡电路,内含放大整形,输出的数据信号被解码后为高电平信号,带四路解码IO输出。
315M超再生无线遥控广泛应用于遥控开关、遥控器、遥控插座、遥控LED、遥控音响、遥控电动门、遥控车库门、遥控伸缩门、遥控卷闸门等等。
接收模块的引脚说明如下:
接收模块的D0~D3引脚对应遥控的ABCD个按键,当遥控按键按下时,对应的按键输出高电平;当遥控按键松开时,对应引脚停止输出。
注意:关于315M遥控模块的具体使用,请根据厂商提供的使用说明。
2、315M遥控接收模块配置
开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与 ...
STM32F1与STM32CubeIDE编程实例旋转编码器驱动
STM32F1与STM32CubeIDE编程实例-旋转编码器驱动旋转编码器驱动1、旋转编码器介绍旋转编码器,也称为轴编码器,是一种机电设备,可将轴或轴的角位置或运动转换为模拟或数字输出信号。 旋转编码器主要有两种类型:绝对式和增量式。 绝对编码器的输出指示当前轴位置,使其成为角度传感器。 增量编码器的输出提供有关轴运动的信息,这些信息通常在其他地方处理成位置、速度和距离等信息。
旋转编码器广泛用于需要对机械系统进行监控或控制或两者兼有的应用,包括工业控制、机器人、摄影镜头、计算机输入设备(如光机械鼠标和轨迹球)、受控应力流变仪和旋转雷达平台 。
编码器技术类型如下:
导电:蚀刻在 PCB 上的一系列圆周铜迹线用于对信息进行编码。 接触刷感应导电区域。 除了数字万用表中的用户输入外,这种形式的编码器现在很少见。
光学:这使用通过金属或玻璃盘中的狭缝照射到光电二极管上的光。 反射版本也存在。 这是最常见的技术之一。 光学编码器对灰尘非常敏感。
同轴磁:该技术通常使用附在电机轴上的特殊磁化 2 极钕磁铁。 因为它可以固定在轴的末端,所以它可以与只有一个轴伸出电机主体的电机一起使用。 ...
STM32F1与STM32CubeIDE编程实例Max7219驱动4位LED点阵基于SPI
STM32F1与STM32CubeIDE编程实例-Max7219驱动4位LED点阵(基于SPI)Max7219驱动4位LED点阵(基于SPI)MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(μPs)连接至多达8位的7段数字LED显示器、条形图显示器或64个独立LED。 片上包括 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器以及存储每个数字的 8x8 静态 RAM。 只需要一个外部电阻来设置所有 LED 的段电流。 MAX7221 与 SPI™、QSPI™ 和 MICROWIRE™ 兼容,并具有限摆率的段驱动器以降低 EMI。
LED点阵是一个二维图案阵列,用于表示字符、符号和图像。Max7219与LED点阵的连接如下:
在前面的文章中,我们通过两种方式驱动Max7219,即SPI方式和GPIO方式,请参考:
MAX7219驱动8位7段数码管(基于GPIO)
MAX7219驱动8位7段数码管(基于SPI)
1、Max7219配置开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM3 ...
STM32F1与STM32CubeIDE编程实例XPT2046电阻触摸屏驱动
STM32F1与STM32CubeIDE编程实例-XPT2046电阻触摸屏驱动XPT2046电阻触摸屏驱动1、XPT2046介绍XPT2046 是一款 4 线电阻式触摸屏控制器,包含一个 12 位 125 kHz 采样 SAR 型 A/D 转换器。XPT2046支持1.5V到5.25V的低电压I/O接口。XPT2046通过两次A/D转换就可以确认被按的屏幕位置。其功能框图如下:
XPT2046支持SPI和QSPI通信,支持8位或12位采集样。XPT2046与MCU的典型连接电路如下:
2、XPT2046配置开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与STM32CubeIDE快速入门-USART/UART串口通信
STM32F1与STM32CubeIDE快速入门-SPI概述
本次配置如下:
SPI配置如下:
XPT2046的CS引脚及IRQ引脚配置如下:
3、XPT ...
