草庐IT

STM32使用PID调速

STM32使用PID调速PID原理PID算法是一种闭环控制系统中常用的算法,它结合了比例(P)、积分(I)和微分(D)三个环节,以实现对系统的控制。它的目的是使控制系统的输出值尽可能接近预期的目标值。在PID算法中,控制器通过不断地测量实际输出值和目标值之间的误差,并使用比例、积分和微分部分的控制参数来调整控制系统的输出值。比例部分根据误差的大小进行控制,其输出与误差成正比。积分部分根据误差的历史累积值进行控制,其输出与误差积分的结果成正比。微分部分根据误差的变化率进行控制,其输出与误差变化率成正比。将这三个部分组合起来,就得到了PID算法。PID控制器不断地对系统进行测量和调整,直到实际输出

FreeRTOS软件定时器 基于STM32

文章目录一·、软件定时器的基本概念二、软件定时器应用场景三、软件定时器的精度四、软件定时器的运作机制五、软件定时器函数接口讲解1.软件定时器创建函数xTimerCreate()2.软件定时器启动函数xTimerStart() 3.软件定时器停止函数 xTimerStop() 4.软件定时器任务5.软件定时器删除函数xTimerDelete()五、软件定时器实验六、实验现象一·、软件定时器的基本概念   定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器的周期与频率。类似生活中的闹钟,我们可以设置闹钟每天什么时候响,还能设置响的次数,是响一次还是每天都响。

STM32使用HAL库BH1750光照度传感器

开发环境单片机:STM32F103C8T6光照度传感器:BH1750IDE:KEIL+STM32CUBEMX单片机配置1、STM32CUBEMXBH1750代码1、头文件/**************************************************BH1750光照数据计算(LUX)LUX=读取数据/1.2例如:读取值为0x56,0x78LUX=0X5678/1.2=22136/1.2=18447**************************************************/#ifndef__BH1750_H#define__BH1750_H#inc

STM32(HAL库)驱动SHT30温湿度传感器通过串口进行打印

目录1、简介2、CubeMX初始化配置2.1基础配置2.1.1SYS配置 2.1.2RCC配置2.2软件IIC引脚配置2.3 串口外设配置 2.4项目生成 3、KEIL端程序整合3.1串口重映射3.2SHT30驱动添加3.3主函数代3.4效果展示1、简介本文通过STM32F103C8T6单片机通过HAL库方式对SHT30传感器进行数据的读取,并通过串口来进行显示。本次通过软件IIC对SHT30传感器进行数据读取。2、CubeMX初始化配置2.1基础配置2.1.1SYS配置 2.1.2RCC配置2.2软件IIC引脚配置2.3 串口外设配置 2.4项目生成 3、KEIL端程序整合3.1串口重映射具

(STM32笔记5)ws2812驱动开发

ws2812需要开发的外设:ws2812开发环境:MDK开发板:stm32最小系统板杜邦线无数一、原理阐述(一)这个ws2812有很多种,一个小灯、灯带,矩形像素屏等等。这些都是DIN连接输入,DOUT连接输出,另外两个引脚是GNE和VCC (二)数据传输原理:第1个WS2812B灯珠接收到了第1个24bit的数据,做出响应(发光);第N个WS2812B灯珠接收到了第N个24bit的数据,再收到第二个24bit的数据后,直接转发给第二个WS2812B灯珠,由第二个WS2812B灯珠做出响应;依次类推。每次给一个灯一个24位的数据,顺序是GRB-greenredbule(三)数据编码编码时序是低

STM32项目设计:基于stm32f1的智能门锁(附项目视频全套教程)

 最近假期比较闲,拿着之前剩下的模块做了一个小玩具,先制定一下此次玩具的规划,也可以理解为简易项目书。开发软件:keil硬件选型:STM32F103C8T6、RFID读卡器、oled屏幕、按键模块、蓝牙通信模块、蜂鸣器、舵机;上位机:1.上位机可以对密码进行设置、重置2.上位机可以接收密码输入错误的报警弹窗提示。3.添加或删除ic卡用户信息。下位机:密码模式:1.输入密码,密码正确即开锁,oled屏显示开锁成功2.若输入错误,OLED显示开锁失败3.连续三次输错密码,蜂鸣器则发出警报4.保存密码至FLASH,调电后不丢失IC卡模式:1.读取IC卡身份信息,若系统中有身份信息则开锁成功2.IC身

STM32-HAL-串口的printf重定向

一、C语言的格式化输出C语言的printf是一个标准库函数,用于将格式化的数据输出到标准的输出设备(通常是终端)基本语法:intprintf(constchar*format,...);其中的第一个参数constchar*format表示输出格式,后面的参数是可变参数,用于填充格式化字符串中的占位符。字符输出原理:格式化字符串处理:printf函数将第一个参数constchar*format中的格式占位符解析出来,然后根据占位符的类型和顺序依次取可变参数中的值,将这些值转换为字符串,并将其按照格式化字符串中的顺序和样式组合成最终的输出字符串。输出字符串存储:printf函数将格式化后的输出字符

STM32启动模式详解

文章目录前置知识1.单片机最小系统组成2.BOOT电路3.三种启动模式4.存储器映射从主FLASH启动从系统存储区启动从SRAM启动前置知识1.单片机最小系统组成一个单片机最小系统由电源、晶振、下载电路、BOOT电路、和复位电路组成。少一个单片机都启动不了。2.BOOT电路BOOT电路本质上是单片机的引脚,在ESP32中BOOT电路被称为称为GPIO_Strapping管脚,引脚图如下:作用:BOOT电路的作用是用于确定单片机的启动模式(启动模式后面会有说明)使用方法:在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式原理:单片机上电或复位后会先启动内部晶振,第四

proteus结合keil-arm编译器构建STM32单片机项目进行仿真

  proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。  下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。  新建工程指定路径,Schematic,PCBlayout都选择默认,在最后创建项目工程向导的时候,选择:CreateFirmwareProject:   硬件系列选择Cortex-M3,控制器类型选择STM32F103C6(其他类型,可能不会出现Compiler下拉选项),编译器类型如果没有选择项,点击后面的Compilers按钮,在弹出框中选择KeilforARM,指定keil-mdk安装

STM32学习(一)

单片机基础CISC和RISC举例冯.诺依曼结构VS哈佛结构冯.诺依曼结构数据和程序存储在同一存储器中,访问数据时不能访问程序,访问程序时不能访问数据,属于分时复用,同一时间只能读取其中一个。Cortex-M系列介绍STM32是基于ARM架构所做的芯片。ARM公司:只做内核设计和IP授权,不参与芯片设计。Cortex内核分类及特征对比项Cortex-A(Application)Cortex-R(Real-time)Cortex-M(Microcomputer)特点高时钟频率,长流水线,高性能较高时钟频率,较长流水线,实时性强时钟频率较低,通常较短的流水线,超低功耗应用场景移动计算、智能手机、平板