草庐IT

PID算法C语言程序STM32单片机控制水温实验(一、位置型PID)

一、概述实验所用器材均为容易买到的设备,主要有STM32F103C8T6最小系统板、DS18B20温度传感器、继电器模块、TM1638显示模块、电加热棒(12V/80W)、直流电源适配器(12V/10A),再找一个小一些的玻璃杯(水250ml),所有设备如下图。二、系统功能由于采用普通继电器控制加热棒,继电器不允许频繁启停,因此将控制周期设为1min,即每1min计算一次当前1min内电加热棒需要开启的时间(占周期的百分比),通过控制每一个控制周期内电加热棒的开启时间,使水温在设定温度附近恒定;因温度的惯性和滞后性,这1min的周期基本可满足要求。PID采用位置型。实现功能如下:上电默认设定温

STM32独立看门狗

时钟频率40KHZ看门狗简介STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的40kHz的低速时钟驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗

RT-Thread STM32G070RB-Nucleo开发板的BSP说明

RT-ThreadSTM32G070RB-Nucleo开发板的BSP说明RT-ThreadSTM32G070RB-Nucleo开发板的BSP说明简介开发板介绍外设支持使用说明快速上手硬件连接编译下载运行结果进阶使用注意事项示例代码源码下载维护人:RT-ThreadSTM32G070RB-Nucleo开发板的BSP说明简介本文档为STM32G070RB-Nucleo开发板的BSP(板级支持包)说明。主要内容如下:开发板资源介绍BSP快速上手进阶使用方法通过阅读快速上手章节开发者可以快速地上手该BSP,将RT-Thread运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用RT

基于STM32的语音识别系统

博主主页:单片机辅导设计博主简介:专注单片机技术领域和毕业设计项目。主要内容:毕业设计、简历模板、学习资料、技术咨询。文章目录主要介绍一、系统总体设计方案2.1系统的设计需求2.2系统功能的要求2.3系统总体设计二、基于LD3320语音识别芯片的硬件设计1硬件系统的设计2主控制器3LD3320芯片电路设计三、系统实现电路图代码总结目录主要介绍  随着技术的不断更新,语音识别和自动控制的发展将是未来不可避免的趋势。比较更为人性化方面的人机交互的方法是语音交互,LD3320芯片能够对语音识别技术收集以及收集识别语音信息,采用了STC10L08XE芯片当作主控制器并且用此芯片当作语音管理系统,继而将

STM32 CubeMX工具在TSL2561驱动开发中的快速集成与调试技巧

在STM32CubeMX工具中快速集成和调试TSL2561驱动的开发技巧,可以大大提高开发效率和减少调试时间。下面将为您介绍如何在CubeMX中进行快速集成和调试TSL2561驱动的技巧和步骤。1.创建新工程和选择芯片型号打开STM32CubeMX工具,点击“NewProject”创建一个新的工程。选择您所使用的STM32芯片型号,并确认。2.配置I2C外设在“Pinout&Configuration”选项卡中,配置I2C外设的引脚。找到与TSL2561光传感器连接的I2C引脚,将它们配置为I2C功能。选择适当的引脚作为I2C的SCL和SDA。3.配置I2C外设时钟和参数在“ClockConf

STM32在CubeMX使用HAL库实现按键控制流水灯亮灭

目录一、在CubeMX创建项目二、代码编写实现流水灯1.编写代码并实现2.观察GPIO端口的输出波形三、代码编写实现按键控制流水灯亮灭1.新建工程(1)配置中断函数2.进入NVIC界面设置中断优先级3.配置时钟4.生成工程文件2.编写代码并实现一、在CubeMX创建项目已配置好java环境和CubeMX。CubeMX官网下载传送门:CubeMX-工具与软件1.第一步2.第二步3.第三步将CubeMX中的"DEBUG"栏目设置为"SerialWire"意味着你选择了SerialWireDebug(SWD)接口作为调试接口。SWD是一种调试接口协议,通常用于与ARMCortex-M微控制器进行调试

详细了解stm32---按键

提示:永远支持知识文档免费开源,喜欢的朋友们,点个关注吧!蟹蟹!目录一、了解按键二、stm32f103按键分析三、按键应用一、了解按键     同学们,又见面了o(* ̄▽ ̄*)ブ,最近降温了,注意保暖哦!这次我们来了解stm32中的按键操作,首先我们需要了解什么是按键,以及按键的基本结构,如下图就是我们按键的基本结构:按键是什么呢?说专业一点,按键就是一种电子开关使用时轻轻按开关按钮就可以使开关接通,当松开手的时候,开关断开。说白了按键就是用来实现一个电路的通路以及断开操作的开关。看完上图之后我们该如何给按键接线呢?假设我们一定要接1引脚,但是接1,2呢?、还是接1,3呢?假设我们接的是1,3

STM32的以太网外设+PHY(LAN8720)使用详解(5):MAC及DMA配置

0工具准备1.野火stm32f407霸天虎开发板2.LAN8720数据手册3.STM32F4xx中文参考手册1MAC及DMA配置1.1使能ETH时钟stm32的ETH外设挂载在AHB1总线上,位于RCC_AHB1ENR的bit25-bit27:相关语句如下:RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC|RCC_AHB1Periph_ETH_MAC_Tx|RCC_AHB1Periph_ETH_MAC_Rx,ENABLE);1.2复位MAC寄存器直接调用ETH_DeInit函数来复位ETH外设voidETH_DeInit(void){RCC_AHB1P

STM32+OLED屏多级菜单显示(三)

        前面两章实现了OLED屏幕显示的基本功能,这一章就做一个多级菜单显示功能        单片机选择STM32F103C8T6最小系统板,OLED屏选择0.96寸OLED显示器,除了单片机和OLED屏之外,还需要三个按键(下一位键、确认键和返回键),当然一个按键也可以(单击、双击和长击完成),为了提高可玩性这里就只使用一个按键。1.多级菜单        多级菜单是一种用户界面设计,它将信息和选项组织为层次结构,使得用户可以快速找到所需的选项。多级菜单的实现基于两种方案索引法和树结构法,索引法阅读性好,扩展性不错,查找性最优,但是比较占用内存,并且一旦选项过多就会造成逻辑混乱  

STM32Cubemx:基于HAL库实现MPU6050 DMA获取姿态信息

不同于移植官方DMP库,在别人标准库基础上移植会更加简单,只要按我的步骤一步一步来,基本不会错,本移植过程适用于F1和F4系列。MPU6050在电赛和制作平衡小车中很常用,所以我记录下来,方便后来者使用,移植过程有什么问题欢迎在评论区留言,我会看的。文章目录一、资料准备二、STM32Cube配置2.1基础配置2.2IIC配置2.3HAL库IIC初始化BUG修改(重点,不修改初始化不了)三、代码移植3.1添加文件到工程中并添加头文件路径3.2开始调教代码四、演示一、资料准备本次实验代码基于Github上一个项目进行,该项目是基于标准库移植的MPU6050代码,所以我们的任务就是将标准库换到HAL