自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 资源 (2)
  • 收藏
  • 关注

原创 淘晶驰串口屏:复刻苹果时钟,指针控件保姆级实战教程

本文基于淘晶驰串口屏,从RTC模块获取时间数据,通过指针控件(z0/z1/z2)实现时钟的时针、分针、秒针动态效果。重点解析12小时制转换逻辑及分针/时针的0.6°/秒和0.5°/分钟细腻移动算法,还原机械表真实走动体验。涵盖控件配置、代码逻辑、变量设计及硬件测试

2025-08-28 20:49:44 677

原创 淘晶驰串口屏: 复刻苹果计算器,进度条和定时器控件保姆级实战教程

上一篇博客实现了串口屏基础加减乘除运算的浮点数计算器。本文增加开机苹果手机画面和开机的进度条.用定时器控件定时2.5秒实现进度条自动增长并在进度为100时跳转计算器页面.

2025-07-24 21:20:20 632

原创 淘晶驰串口屏文件提示:错误的资源文件或者资源文件已经受损

微信传输HMI工程文件可能导致文件被设为只读,引发错误提示。解决方法:右键点击文件-属性,取消勾选"只读"选项并确认即可正常打开。

2025-06-28 10:54:09 192

原创 淘晶驰串口屏: 复刻苹果计算器,虚拟浮点数和触摸热区控件保姆级实战教程

上一篇博客实现了串口屏基础加减乘除运算,但存在功能局限。本文聚焦于利用淘晶驰串口屏的虚拟浮点数控件,对计算器进行功能升级,实现与苹果计算器相近的使用体验。核心优化包括支持负数输入与显示、精准小数点运算、百分号快捷计算,并确保界面布局与苹果系统自带计算器视觉一致。通过设计变量表与运算逻辑,详细拆解文本转浮点数、浮点数运算、结果转文本等流程,结合数字、运算符等控件及触摸热区控件的代码实现,完成功能开发。经点击调试、模拟器测试与硬件测试验证,计算器运行正常。不过,目前暂不支持复合运算与连续运算符输入,后续可探索拓

2025-06-28 10:52:06 1046

原创 从 C 语言计算器到串口屏应用

在工业控制、智能家居等领域,串口屏作为人机交互的重要组件被广泛应用。理解串口屏的工作原理,最好的方式是从基础的 C 语言编程入手。本文将通过实现一个简单的计算器,逐步展示如何从传统 C 语言程序过渡到适合串口屏开发的代码结构。

2025-06-14 20:31:21 1144

原创 高效录屏工具推荐:从系统自带到专业进阶

苹果电脑原生录屏功能简单快捷,通过Shift+Command+5快捷键可自由选择全屏、窗口或区域录制,适合轻量使用。Windows10的Win+Alt+G录屏功能可能存在兼容问题。芦笋录屏作为跨平台专业工具,支持人像+屏幕双轨录制、美颜滤镜、虚拟背景等高级功能,适用于教学、会议等多元场景,付费版还提供云端存储和多设备同步。建议根据需求复杂度选择方案:简单录制用原生功能,专业需求选芦笋录屏。

2025-06-14 20:30:09 759

原创 淘晶驰串口屏:复刻苹果计算器,了解代码编写

用淘晶驰串口屏完成了一个具备加减乘除运算功能的计算器(暂时不支持负号,小数点和百分号),不仅熟悉了工程创建、字库导入、控件拖放等全流程操作,更掌握了变量存储、事件逻辑,切图,代码编写等核心开发思维。这些技能不仅适用于简单计算器,更能延伸至智能家居控制面板、工业仪表监测界面、智能设备调试终端等丰富场景。

2025-06-12 07:57:34 1419

原创 豆包:如何利用进行ai绘图快速获得想要的效果

本文介绍如何用豆包ai绘图快速获得想要的效果,涵盖图像修改四大要点:先明确修改类型(如内容增减、风格转换),用蒙版圈定范围并附参考图;再选图生图或局部重绘模式,前者可将猫咪照转动漫风,后者能替换背景。提示词需细化,如设定赛博朋克元素。迭代时小范围修改。以计算器改图为例,通过给圆形按键加白色模拟按下效果的方案最优,仅调整颜色且不改动其他元素。

2025-06-12 07:54:17 1785

原创 淘晶驰串口屏:复刻苹果计算器,掌握切图控件的使用

本文基于上一篇文章改进,上一篇文章基于按钮的切图的功能,并没有直接用切图控件,我们将借助陶晶驰串口屏的切图控件,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解切图控件在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。

2025-06-07 10:32:51 1014

原创 淘晶驰串口屏:复刻苹果计算器,掌握按键控件的切图使用-2个图片

本文基于上一篇文章改进,上一篇文章基于按钮的切图的功能,但是用了十几张图片,操作起来太麻烦,今次尝试只用两个图片实现一样的效果。 我们将借助陶晶驰串口屏的按钮控件的切图功能,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解按键控件的切图在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。

2025-06-07 09:36:30 910

原创 淘晶驰串口屏:复刻苹果计算器,掌握按键控件的切图使用

引言在之前尝试实现的四按键加法计算器被反馈巨丑无比,本次我们将借助陶晶驰串口屏,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解按键控件的切图在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。修改前修改后。

2025-06-05 08:34:38 936

原创 C 语言开发中常见的开发环境

C语言开发环境选择指南:1)Dev-C++适合初学者但较老旧;2)VS Code灵活但需配置GCC/MinGW编译器;3)虚拟机+Linux(Vim+GCC)提供完整开发环境;4)嵌入式开发推荐KeilMDK或IAR等商用IDE。不同场景各有优势,可根据需求选择。#开发工具

2025-05-31 11:43:22 395

原创 淘晶驰串口屏开发初体验:10分钟实现简易加法器

本文围绕淘晶驰(TJC)串口屏的高效开发展开,以「硬件即插即用+软件可视化开发」为核心,通过**3键加法计算器**实操案例,详解开发全流程。内容涵盖:工程创建(选型号、设显示方向)、字库制作导入、文本/数字/变量控件配置,及按钮事件代码编写(数字输入、变量存储、加法运算)。教程中,利用变量控件(va0)存储中间值,通过按钮弹起事件触发「n0.val=n0.val+va0.val」等运算逻辑,实现「1+2=3」交互验证。全文以10分钟快速入门为目标,拆解开发步骤,兼顾零基础友好性,助力读者掌握串口屏核心控件

2025-05-31 09:14:06 1378

原创 淘晶驰USART HMI 上位机软件安装

本文详细介绍了淘晶驰串口屏开发中USARTHMI上位机软件的安装教程。主要内容包括:1)软件下载方法;2)压缩包解压与安装步骤;3)安装过程中的关键操作指引;4)解决.NET Framework 3.5环境问题的两种方案(联网/离线安装);5)常见问题解决方法(如杀毒软件拦截、网络环境切换等)。全文以通俗易懂的语言,手把手指导用户4分钟完成安装,助力快速开启串口屏开发工作。

2025-05-28 08:31:15 1352

原创 RGB888和RGB565:红绿蓝三色光变出千万种颜色

RGB色彩模型通过红、绿、蓝三种颜色光的混合生成各种颜色,广泛应用于电子设备显示。RGB888(24位色)每个颜色通道用8位表示,可组合1600万种颜色;而RGB565用16位表示颜色(红5位、绿6位、蓝5位),能显示约6.5万种颜色,虽然色彩较少但更节省资源。单片机常用RGB565因其占用内存小、处理速度快,且颜色差异对人眼不明显。文中还提供了RGB888与RGB565相互转换的代码实现,帮助开发者根据项目需求选择合适的颜色格式。

2025-05-25 21:21:00 1121

原创 STM32 利用SysTick实现高精度计时

STM32 HAL库利用ARM Cortex-M内核自带的24位递减计数器SysTick(系统节拍),它属于 NVIC的一部分,且可以产生 SysTick 异常(异常类型#15)。通过读取并判断计数值来实现精确延时,从0xFFFFFF向下计数到0。可以用作I2C、SPI通信中的时序控制,RTOS环境中作为心跳时钟

2025-02-24 22:45:23 1402

原创 STM32开发常用延时方式详解:原理、场景与代码示例

在STM32开发中,延时是常见的操作之一,实现方法多样。下面将详细介绍几种常用的延时方式、其工作原理、适用场景,并结合示例代码进行分析。

2025-02-24 21:31:57 1252

原创 STM32 HAL库0.96寸OLED显示液晶屏

本文介绍了使用STM32 HAL库通过I2C协议驱动0.96寸OLED显示屏的方法。首先概述了OLED的基本特性和应用,然后详细讲解了汉字点阵生成的方法,并提供了完整的代码示例,包括初始化、清屏、字符串显示和自定义汉字显示函数。这些代码实现了在STM32F103ZET6开发板上显示特定内容的功能,如英文句子和中文字符“慢慢变好”。

2025-02-23 21:28:22 3750

原创 免费文档翻译,支持多语言,无需会员,一键轻松译成中文!

免费将文档翻译成中文,并且支持多语言,不需要会员

2025-02-22 21:56:40 340

原创 仅需一个 HAL 库函数:轻松实现 STM32 的 SPI 编程(以 Flash 25Q128 为例)

 主要介绍如何用HAL_SPI_TransmitReceive()函数实现对W25Q128 Flash存储器ID的读取。先介绍SPI是一种高速且简单的同步串行接口技术,由四根线((MOSI、MISO、SCLK和SS/CS))组成。接着介绍Flash ,它是串行闪存芯片,能提供更大存储容量。还提到STM32 HAL库简化了SPI编程,以正点原子精英V2开发板为例,给出开发环境及函数原型和参数。最后展示读取ID的代码示例,通过发送命令、接收数据并判断状态来获取ID。 

2025-02-22 18:54:50 2871

原创 Flash串行闪存芯片入门指南:最小必要知识

Flash串行闪存芯片是一种非易失性存储器,即使在断电的情况下也能保存数据。它们通过 SPI(Serial Peripheral Interface) 接口与主控设备进行通信。相比于并行闪存,串行闪存具有引脚数少、封装小、成本低等优点。W25Q64和W25Q128都是常见的串行闪存芯片。

2025-02-20 22:54:03 1462

原创 一文读懂SPI通讯:简单易懂的大白话讲解

有些在电子设备里,主机和从机就靠着SPI通讯。它控制着数据传输的节奏,让主设备和从设备在规定的时间点上完成数据的发送和接收,就跟餐厅按照时间表保证服务流程有序进行一样。主设备通过这个引脚选中特定的从设备进行通信,只有被选中的从设备会响应主设备的命令,其他从设备就乖乖待着不吭声,当听不见。这一系列操作,就好比从设备接收到主设备的数据后,经过一番“加工”,再把处理好的数据通过MISO线返回给主设备。比如说顾客喊“来一份红烧肉,一份炒青菜”,这信息就从顾客这儿传到服务员耳朵里啦,就跟主设备把数据传给从设备一样。

2025-02-20 22:21:30 775

原创 STM32 HAL库I2C函数使用详解:以MPU6050传感器为例

引言I2C(Inter - Integrated Circuit)总线作为一种简单、高效的串行通信协议,广泛应用于各种传感器、存储器等设备的通信中。MPU6050 六轴传感器便是常见的基于 I2C 通信的设备,它能同时测量加速度和角速度,在机器人、无人机等领域有着广泛的应用。本文将详细介绍如何使用 STM32 HAL 库中的 I2C 函数与 MPU6050 传感器进行通信。一、开发环境。

2025-02-19 22:43:13 2200

原创 I2C(Inter-Integrated Circuit)协议:用大白话揭开它的神秘面纱

I2C是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息,主要用于短距离、低速的数据传输。这两条信号线分别是:SDA(Serial Data Line):数据线SCL(Serial Clock Line):时钟线通过这两条线,多个设备可以连接到同一个I2C总线上,并且每个设备都有一个唯一的地址,这样它们就能互相识别并进行数据交换了。CPU作为主机,被控IC1、IC2、IC3、IC4作为从机,通过SDA和SCL来连接。

2025-02-19 22:10:41 1076

原创 STM32 HAL库USART串口DMA IDLE中断编程:避坑指南

本文介绍STM32F103 HAL库USART串口DMA IDLE中断.坑在HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)的DMA的半满中断-UART_DMARxHalfCplt,关闭 DMA 的半传输完成中断    __HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT);   

2025-02-18 22:45:15 2360

原创 STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

​HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防止数据丢失.​

2025-02-18 09:50:18 1306

原创 STM32 HAL库USART串口中断编程:演示数据丢失

,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数使用并指出问题,下一篇再解释解决方案:加入环形缓冲区.主要是两个函数的调用和实现.HAL_UART_Receive_IT和HAL_UART_RxCpltCallback(huart)

2025-02-17 23:05:06 1400

原创 如何读万用表交流电压档的测量精度

如何读万用表交流电压档的测量精度.如果测量 380V 且滤波 OFF: 误差上限 = 380×0.9% + 0.3 = 3.42 + 0.3 = 3.72 V 误差下限 = -3.72 V “交流电流档 0 ~6.000A(0.001A分辨率),45 Hz ≦ f ≦ 66 Hz” 表示这个档位适用于测量 0 到6A的交流电流,并且测量的交流电流频率在 45 赫兹到 66 赫兹之间。

2025-02-16 15:50:28 1218 1

原创 1分钟彻底搞懂“高内聚,低耦合”

“高内聚,低耦合”,在高耦合的程序里,修改一个模块很可能会牵一发而动全身,引发多个相关模块出现问题,让程序的维护和扩展变得异常艰难。这就和程序模块间的低耦合类似,在低耦合的程序中,每个模块相对独立,开发者修改一个模块时,不容易波及其他模块,大大提高了程序的可维护性和可扩展性。显卡的驱动程序和软件也都是围绕图形处理进行优化的,不会干扰到 CPU 的计算任务、硬盘的数据存储以及内存条的数据读写等其他功能,各个功能环节紧密围绕图形处理这一核心任务,体现了高内聚。硬盘:硬盘的主要功能是数据的长期存储。

2025-02-14 22:17:46 1595

原创 智能控制器开发项目-项目章程

项目章程,本项目旨在开发一款适用于中国市场的智能控制器,提供更低价格、更大屏幕和更强功能,满足市场对高性价比、智能化产品的需求。项目包括硬件设计、软件开发、测试与验证、以及市场推广。硬件设计要求控制器支持-20°C至70°C工作温度范围,软件包括远程监控、故障报警、温度调节等功能。项目将经过功能、环境、压力等多方面的测试,确保产品稳定性与高效性。项目的目标是确保控制器符合中国市场的需求,具有高可靠性、智能化功能,并满足电气安全与环保法规。在时间管理上,项目将按计划完成各阶段里程碑,确保产品按时发布。项目

2025-01-09 22:09:17 719

原创 CAN总线J1939协议报文的数据解析与换算

本文将深入探讨CAN J1939报文的数据解析与换算过程,不讲理论,直接上方法,只是对数据段进行讲解。数据段用于存放当前报文所要传输的数据。每一帧数据最大可以存放8个字节,共64个位的数据。这64个位可以包含好很多个信号,定义了每一个信号的起始位置、长度、分辨率、偏移量等。具体可以通过查询SAE J1939相关的PGN、SPN、SLOTS、源地址等信息查询表或者在SAEJ1939-71文档里面直接搜索,查看到相关信息后,代入下面公式计算。2.CAN报文解析公式:解析值=原值*分辨率+偏移量(用于接收)

2025-01-08 22:22:52 2188

原创 STM32 Keil报错#67: expected a “}“ 和 Error: L6915E: Library reports error: __use_no_semihosting

一、问题:Keil报错#67: expected a "}"STM32 在Keil中更改主控芯片导致的编译报错:..\CMSIS\stm32f10x.h(298): error: #67: expected a "}"keil程序默认选的是STM32F103C8芯片,现在要用STM32F103F103ZET6型号,直接更改魔法棒里的devices的芯片型号1、报错原因:宏定义与型号不匹配 STM32F10X_MD2、解决方法宏定义改为:2、解决方法宏定义改为:STM32F10X_HD

2025-01-05 22:30:35 1103

原创 发明专利与实用新型专利申请过程及自助与代办方式对比

申请专利的过程因专利类型(发明专利、实用新型专利)的不同而有所差异,同时,自己直接向国家知识产权局申请与通过专利代办处申请这两种方式也存在一定的对比。以下是对这两种专利类型申请过程及两种申请方式的详细介绍和对比,参考报价,自己申请提交官费即可,专利代办处需要增加代理费:综上所述,选择自己直接向国家知识产权局申请还是通过专利代办处申请取决于申请人的具体情况和需求。如果申请人具备相关的专业知识和经验,并且愿意投入时间和精力来关注申请的进展和处理相关手续,那么可以选择自己申请。如果申请人希望获得更专业、全面的服务

2024-12-28 23:06:13 1279

原创 STM32定时器对象捕获功能测量市电频率

在很多嵌入式系统中,精确地测量外部信号的频率是一个常见需求,尤其是对于需要同步外部电源(如市电)的应用。市电频率(50Hz或60Hz)是电力系统中一个至关重要的参数。在许多场景下,特别是UPS(不间断电源)和电力监控系统中,我们需要通过微控制器实时测量市电频率。在这篇博客中,介绍如何使用 STM32F4 系列微控制器的 定时器2的输入捕获功能 来精确测量市电频率。我们不仅会展示如何配置硬件和编写代码,还会深入理论背景,帮助你全面理解这个过程。

2024-12-21 21:44:43 1161

原创 STM32 HAL库 + LM2904运算放大器 + ADC + 4-20ma液位传感器:电路设计及代码实现

4-20ma液位传感器在工业自动化和日常应用中非常常见,例如水位监测、液体储罐管理等。本文将结合STM32 HAL库,带你实现一个简单的液位监测demo,从电路设计到代码实现,实现通过单通道ADC采集4-20ma液位传感器的信号,并通过串口将采集到的液位百分比打印输出。具体流程包括:通过分压电阻将获得4-20ma液位传感器的分压电压,再利用运算放大器LM2904对信号进行放大,随后将信号输入STM32的ADC2模块读取通道6(对应引脚PA6)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。

2024-12-14 21:01:03 2144 1

原创 STM32 HAL库 + LM358运算放大器 + ADC + VDO温度传感器:电路设计及代码实现

本文将详细介绍如何使用STM32F407的HAL库,实现通过单通道ADC采集VDO温度传感器的信号,并通过串口将采集到的温度值打印输出。具体流程包括:通过分压电阻将获得VDO温度传感器的分压电压,再利用运算放大器LM358对信号进行放大,随后将信号输入STM32的ADC1模块读取通道9(对应引脚PB1)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。该电路在气压传感器等同样适用。

2024-12-03 09:24:04 1709

原创 STM32 HAL库 + LM2904运算放大器 + ADC + VDO温度传感器:电路设计及代码实现

本文将详细介绍如何使用STM32F407的HAL库,实现通过单通道ADC采集VDO温度传感器的信号,并通过串口将采集到的温度值打印输出。具体流程包括:通过分压电阻将高电压转换为低电压,再利用运算放大器LM2904对信号进行放大,随后将信号输入STM32的ADC1模块读取通道7(对应引脚PB0)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。

2024-12-02 22:19:46 1404

原创 STM32F407 HAL库实现LM2904运算放大后的单通道ADC采集与串口电压值显示

本文将介绍如何使用STM32F407的HAL库实现测量经过运算放大器LM2904的,实现单通道ADC采集,并通过串口将采集到的电压值打印出来。具体地,通过分压电阻,将高电压转化成小电压,再经过运算放大器LM2904放大,输入到ADC3读取通道7(对应引脚PF9),并将转换后的电压值用串口1发送到串口助手上进行显示。

2024-11-26 09:54:20 1509

原创 LM2904运算放大器的应用:测电池电压

在电子设备的广泛应用中,电池作为便携设备的能量来源,其电压监测显得尤为关键。LM2904作为一款低功耗、高增益带宽积和高共模抑制比的双运算放大器,非常适用于电池电压的测量与监测。本文详细介绍了LM2904在电池电压测量方面的应用,从电路设计、电路换算及结果验证到都进行了阐述。一、LM2904简介LM2904是一款包含两个独立双路运算放大器的集成电路,每个放大器都具有高增益和内部频率补偿,适用于宽电源电压范围和双电源工作模式下的单电源应用。其低功耗特性和高稳定性使得LM2904在电池管理系统、信号放大、

2024-11-25 22:45:19 3100

原创 低成本搭建单相220V转三相380V变频器配滤波器的转换器

单相220V转三相380V变频器广泛应用于需要不同电压和频率电源的场合,如:进口设备适配:对于需要从国外进口的设备,如果其电源要求与本地电网不匹配,可以使用该变频器进行适配,接电机,水泵,灯泡是没问题的。电力设备测试与维护:在电力设备测试和维护过程中,可能需要不同电压和频率的电源,该变频器可以满足这一需求,可以产生0~500hz,0~1000V的三相交流电。工业设备改造:在一些地区,由于三相电申请繁琐或成本较高,一些工业设备可能只能使用单相电。通过使用该变频器,可以将单相电转换为三相电,满足三相设备

2024-11-21 23:32:28 2963

STM32F407 HAL库实现LM2904运算放大后的单通道ADC采集与串口电压值显示

 本文将介绍如何使用STM32F407的HAL库实现测量经过运算放大器LM2904的,实现单通道ADC采集,并通过串口将采集到的电压值打印出来。具体地,通过分压电阻,将高电压转化成小电压,再经过运算放大器LM2904放大,输入到ADC3读取通道7(对应引脚PF9),并将转换后的电压值用串口1发送到串口助手上进行显示。

2024-11-26

基于STM32 HAL库的FFT计算与数学运算:幅值、频率、均方根、平均值、最大值、最小值、峰峰值与标准差

介绍如何使用STM32微控制器执行FFT计算,以提取信号的幅值、频率、均方根、平均值、最大值、最小值、峰峰值与标准差。1. 信号采集 首先,我们需要使用STM32的ADC模块来采集模拟信号,比如三相交流电。ADC将模拟信号(如电压或电流)转换为数字信号,供后续处理。 采样数量:FFT的计算通常需要2的整数次幂的采样点数(如1024、2048)。采样点数越多,频率分辨率越高。    采样频率:采样频率必须至少是信号频率的两倍(奈奎斯特定理)。例如,分析50Hz的信号时,采样频率应至少为100Hz。

2024-11-17

STM32F407 HAL+定时器TIM+ADC+DMA计算正弦波的平均值、均方根、最大值、最小值、峰峰值

 在STM32F407系列微控制器的开发中,结合定时器、ADC(模数转换器)与DMA(直接存储器访问)控制器,能够显著提升数据采集与传输的效率。本文将指导你如何使用STM32 HAL库,通过定时器触发ADC1的单通道采集,利用DMA传输数据,累加的方式计算正弦波的平均值、均方根、最大值、最小值、峰峰值,最终通过串口将电压值打印出来,仅显示简单演示过程,精度不高。具体实现中,我们将读取ADC1的通道5(对应引脚PA5),并将转换得到的电压值发送到串口助手上进行显示。无需DSP库。

2024-11-14

STM32 HAL库UART查询方式实例

本文中介绍USART编程涵盖了三种主要方法,详细介绍STM32F407微控制器结合HAL库,通过UART的查询方式来实现一个实用的密码验证程序。提示用户键入一个字符作为密码。只有当用户精准地输入字符'6'时,系统才会反馈“密码正确”的确认信息。反之,若输入的字符非'6',则会立即显示“密码错误,请重新输入”的提示。

2024-10-07

环形缓冲区(Ring Buffer)在STM32F407 HAL库中的应用:防止按键丢失

​ 环形缓冲区(Ring Buffer)又称为循环缓冲区或圆形队列,是一种数据结构,它用于管理固定大小的数据存储空间。环形缓冲区本质是一个一维数组,不过是收尾相连的,类比一条蛇咬自己尾巴。 环形缓冲区重要性:避免数据被覆盖。比如,使用中断函数或者定时器函数记录按键,如果只能记录一个键值的话,如果不能及时读走出来,再次发生中断时新值就会覆盖旧值。使用环形缓冲区可以避免数据被覆盖。 本文将详细介绍环形缓冲区的概念、工作原理,并以STM32F407微控制器结合HAL库为例,探讨如何利用环形缓冲区有效防止按键输入丢失 ​

2024-10-06

STM32F407 HAL库定时器触发ADC采集与DMA数据传输(定时器TIM+ADC+DMA)

在STM32F407系列微控制器的开发中,结合定时器、ADC(模数转换器)与DMA(直接存储器访问)控制器,能够显著提升数据采集与传输的效率。本文将指导你如何使用STM32 HAL库,通过定时器触发ADC1的单通道采集,利用DMA传输数据,最终通过串口将电压值打印出来。具体实现中,我们将读取ADC1的通道5(对应引脚PA5),并将转换得到的电压值发送到串口助手上进行显示。

2024-10-06

STM32F407 HAL库单通道ADC采集并串口打印电压值

本文将介绍如何使用STM32F407的HAL库实现单通道ADC采集,并通过串口将采集到的电压值打印出来。具体地,我们将使用ADC1读取通道5(对应引脚PA5),并将转换后的电压值用串口1发送到串口助手上进行显示

2024-10-05

STM32F407 HAL库单通道ADC采集并串口打印电压值

本文将介绍如何使用STM32F407的HAL库实现单通道ADC采集,并通过串口将采集到的电压值打印出来。具体地,我们将使用ADC1读取通道5(对应引脚PA5),并将转换后的电压值用串口1发送到串口助手上进行显示

2024-10-05

STM32上实现FFT算法精准测量正弦波信号的幅值、频率和相位差(标准库)

FFT(快速傅里叶变换)是一种将信号从时域(随时间变化的信号)转换为频域(不同频率成分的信号)的算法。使用STM32F407微控制器和FFT来分析正弦信号的幅值、频率和相位差。

2024-09-16

STM32F103单片机C语言模块化编程实战:按键控制LED灯并串口打印详解与示例

虽然这里演示的是STM32F103,但是STM32F407还是STM32H系列等,但是可直接将LED、按键、串口文件复制使用,仅供需改头文件的引脚,这里是用STM32F407实现的介绍(http://t.csdnimg.cn/CWVUM)。之前介绍了很多关于点灯的方法,比如轮询、定时器中断、PWM、按键点灯等方式,这些文章使用的编程方法都不是模块化的编写方式,往往会导致代码可读性差、重用性差、扩展性差以及测试和维护困难等问题。为了避免这些问题,我们实际工作中通常会采用模块化的编写方法,这样可以确保代码结构清晰、功能明确,提高代码的可读性和可维护性,同时降低功能之间的耦合度,增强代码的重用性和扩展性。模块化的编写方式还有助于实现代码的并行开发,提高开发效率,使得整个项目更加易于管理和维护。 基于之前的按键点灯的程序和printf重定向输出进行修改,我将为您详细阐述如何使用STM32F103的HAL库,并结合STM32CubeMX配置工具,通过模块化方法用按键分别控制两个LED灯并通过串口打印按键与灯的状态,即用引脚PE3和PE4按键分别控制PB5和PE5引脚LED,通过USART1

2024-04-24

STM32单片机C语言模块化编程实战:按键控制LED灯并串口打印详解与示例

​ 虽然这里演示的是STM32F407,但是STM32F103还是STM32H系列等,但是可直接将LED、按键、串口文件复制使用,仅供需改头文件的引脚。之前介绍了很多关于点灯的方法,比如轮询、定时器中断、PWM、按键点灯等方式,这些文章使用的编程方法都不是模块化的编写方式,往往会导致代码可读性差、重用性差、扩展性差以及测试和维护困难等问题。为了避免这些问题,我们实际工作中通常会采用模块化的编写方法,这样可以确保代码结构清晰、功能明确,提高代码的可读性和可维护性,同时降低功能之间的耦合度,增强代码的重用性和扩展性。模块化的编写方式还有助于实现代码的并行开发,提高开发效率,使得整个项目更加易于管理和维护。 基于之前的按键点灯的程序和printf重定向输出进行修改,我将为您详细阐述如何使用STM32F407的HAL库,并结合STM32CubeMX配置工具,通过模块化分层方法用按键分别控制两个LED灯并通过串口打印按键与灯的状态,即用引脚PE2和PE3按键分别控制PF9和PF10引脚LED,通过USART1打印信息。这一简洁而高效的流程将助您迅速掌握LED、按键、串口模块化编写方法。 ​

2024-04-23

STM32单片机C语言模块化编程实战:按键点亮LED灯控制详解与示例

​ 之前介绍了很多关于点灯的方法,比如轮询、定时器中断、PWM、按键点灯等方式,这些文章使用的编程方法都不是模块化分层的编写方式,往往会导致代码可读性差、重用性差、扩展性差以及测试和维护困难等问题。为了避免这些问题,我们实际工作中通常会采用模块化分层的编写方法,这样可以确保代码结构清晰、功能明确,提高代码的可读性和可维护性,同时降低功能之间的耦合度,增强代码的重用性(无论是STM32F103还是STM32F407或是STM32H系列等,直接将文件复制使用)和扩展性。模块化分层的编写方式还有助于实现代码的并行开发,提高开发效率,使得整个项目更加易于管理和维护。 基于之前的按键点灯的程序进行修改,我将为您详细阐述如何使用STM32F407的HAL库,并结合STM32CubeMX配置工具,通过模块化分层方法用按键分别控制两个LED灯,即用引脚PE2和PE3按键分别控制PF9和PF10引脚LED。这一简洁而高效的流程将助您迅速掌握LED和按键模块化分层的编写方法。 ​

2024-04-22

STM32单片机C语言模块化编程实战:LED控制详解与示例

​ 之前介绍了很多关于点灯的方法,比如轮询、定时器中断、PWM等方式,这些都不是采用模块化分层的编写方式,往往会导致代码可读性差、重用性差、扩展性差以及测试和维护困难等问题。为了避免这些问题,我们实际工作中通常会采用模块化分层的编写方法,这样可以确保代码结构清晰、功能明确,提高代码的可读性和可维护性,同时降低功能之间的耦合度,增强代码的重用性(无论是STM32F103还是STM32F407或是STM32H系列等,直接将文件复制使用)和扩展性。模块化分层的编写方式还有助于实现代码的并行开发,提高开发效率,使得整个项目更加易于管理和维护。 我将为您详细阐述如何使用STM32F407的HAL库,并结合STM32CubeMX配置工具,通过轮询方式实现PF9和PF10引脚LED灯的闪烁。这一简洁而高效的流程将助您迅速掌握LED模块化分层的编写方法,轻松成为“点灯大师”。 ​

2024-04-21

STM32 HAL库只需1行代码实现USART串口打印Hello World

使用STM32F407的HAL库只需1行代码实现USART1串口打印“Hello World!”,下面我将详细解释STM32CubeMX配置步骤和程序,打印“Hello World!”。一旦程序烧录完成并运行,串口助手一直在打印“Hello World!”。如果一切正常,恭喜你,你现在已经会“Hello World!”了!​​

2024-04-21

一分钟成为点灯大师(超简单1行代码-STM32F407的HAL实现按键中断方式点亮LED灯)

使用STM32F407的HAL库实现按键中断方式读取按键值,点亮和熄灭PF9的LED灯的STM32CubeMX配置步骤和程序,通常需要遵循一系列步骤。下面我将详细解释这些步骤,帮助你一分钟内成为“点灯大师”。中断方式解决了按键轮询的方式CPU占用率高和实时性较差的问题,能实时响应,节省CPU资源,方便也扩展。

2024-04-20

一分钟成为点灯大师(超简单5行代码-STM32F407的HAL实现按键轮询点亮LED灯)

一分钟成为点灯大师(超简单5行代码-STM32F407的HAL实现按键轮询点亮LED灯)

2024-04-20

一分钟成为点灯大师(超简单24行代码-STM32F407的HAL库PWM实现LED渐变闪烁)

硬件:正点原子探索者 V3 STM32F407 开发板 单片机:STM32F407ZGT6 Keil版本:5.32 STM32CubeMX版本:6.9.2 STM32Cube MCU Packges版本:STM32F4 V1.27.1 使用STM32F407的HAL库定时器14的PWM实现PF9的LED渐变闪烁的STM32CubeMX配置步骤和程序,通常需要遵循一系列步骤。下面我将详细解释这些步骤,帮助你一分钟内成为“点灯大师”。

2024-04-20

一分钟成为点灯大师(超简单8行代码-STM32F407的HAL库定时器方式实现LED每隔1秒闪烁)

一分钟成为点灯大师(超简单8行代码-STM32F407的HAL库定时器6方式实现LED每隔1秒闪烁)

2024-04-18

stm32cubemx 固件版本STM32Cube FW-F4 V1.27.1

stm32cubemx 固件版本STM32Cube FW-F4 V1.27.1

2024-04-15

C语言 统计数字的出现频率,并将出现频率最高的前100个数字按照降序排列后写入到文件中

C语言 统计数字的出现频率,并将出现频率最高的前100个数字按照降序排列后写入到文件中

2024-04-14

串口屏与单片机通讯,淘晶驰串口屏通信协议的设计与应用

本文介绍了淘晶驰串口屏通信协议的设计与应用。主要内容包括:1.通信协议的基本结构(帧头、帧长、内容、校验、帧尾),可根据项目需求选择完整版或简化版;2.淘晶驰自定义协议实现方法,使用printh和prints指令发送数据,并提供三种帧头帧尾组合示例;3.实际应用案例:设计时钟时间传输协议,实现串口屏与单片机的时间数据交互;4.测试方法,包括软件模拟和硬件测试,成功完成苹果时钟项目。本文还提供了系列教程参考,帮助开发者掌握串口屏开发全流程。

2025-08-06

淘晶驰串口屏:复刻苹果时钟,指针控件保姆级实战教程

本文将进一步挑战更高阶的交互设计——复刻苹果时钟!通过 指针控件(z0、z1、z2)实现时钟的时针、分针、秒针动态效果,并模拟机械表的细腻走动逻辑。最终效果将媲美苹果原生时钟,甚至支持 12小时制转换 和 分针/时针的平滑移动!

2025-07-25

淘晶驰串口屏: 复刻苹果计算器,进度条和定时器控件保姆级实战教程

实现了串口屏基础加减乘除运算的浮点数计算器。本文增加开机苹果手机画面和开机的进度条.用定时器控件定时2.5秒实现进度条自动增长并在进度为100时跳转计算器页面.

2025-07-24

淘晶驰串口屏:从 0 到 1 复刻苹果计算器!陶晶驰串口屏虚拟浮点数控件保姆级实战教程

上一篇博客实现了串口屏基础加减乘除运算,但存在功能局限。本文聚焦于利用陶晶驰串口屏的虚拟浮点数控件,对计算器进行功能升级,实现与苹果计算器相近的使用体验。核心优化包括支持负数输入与显示、精准小数点运算、百分号快捷计算,并确保界面布局与苹果系统自带计算器视觉一致。通过设计变量表与运算逻辑,详细拆解文本转浮点数、浮点数运算、结果转文本等流程,结合数字、运算符等控件及触摸热区控件的代码实现,完成功能开发。经点击调试、模拟器测试与硬件测试验证,计算器运行正常。不过,目前暂不支持复合运算与连续运算符输入,后续可探索拓展 。

2025-06-28

淘晶驰串口屏:复刻苹果计算器,了解代码编写

本文基于上一篇文章改进,修改前,仅仅支持两个单位数字加法运算,修改后,支持加减乘除运算-不支持负号,小数点和百分号。我们将借助陶晶驰串口屏的按钮控件的按下事件,以1:1复刻苹果手机计算器为目标,初步了解陶晶驰串口屏的代码编写。

2025-06-11

陶晶驰串口屏:复刻苹果计算器,掌握切图控件的使用

​ 本文基于上一篇文章改进,上一篇文章基于按钮的切图的功能,并没有直接用切图控件,我们将借助陶晶驰串口屏的切图控件,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解切图控件在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。 ​

2025-06-07

陶晶驰串口屏:复刻苹果计算器,掌握按键控件的切图使用-2个图片

​ 本文基于上一篇文章改进,上一篇文章基于按钮的切图的功能,但是用了十几张图片,操作起来太麻烦,今次尝试只用两个图片实现一样的效果。 我们将借助陶晶驰串口屏的按钮控件的切图功能,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解按键控件的切图在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。 ​

2025-06-07

陶晶驰串口屏:复刻苹果计算器,掌握按键控件的切图使用

在之前尝试实现的四按键加法计算器被反馈巨丑无比,本次我们将借助陶晶驰串口屏,以1:1复刻苹果手机计算器为目标,不仅实现简单加法运算,更深入理解按键控件的切图在提升界面美观度与交互性方面的应用。通过这个过程,将学会如何利用陶晶驰串口屏打造出既实用又美观的交互界面。

2025-06-05

淘晶驰串口屏开发初体验:10分钟实现简易加法器

在嵌入式设备的人机交互(HMI)开发中,高效与易用性至关重要。淘晶驰(TJC)串口屏凭借其「硬件即插即用」与「软件可视化开发」的双重优势,成为快速构建图形界面的理想选择。本文将带您在短短10分钟内,通过实现一个直观的三按键加法计算器(包含数字1、2和运算符+、=),快速掌握淘晶驰串口屏的核心功能与开发流程。介绍文本显示、数字输入、变量存储及按钮交互这些最高频控件的实际应用,轻松开启嵌入式GUI开发之旅。

2025-05-31

STM32 利用SysTick实现高精度计时

STM32 HAL库利用ARM Cortex-M内核自带的24位递减计数器SysTick(系统节拍),它属于 NVIC的一部分,且可以产生 SysTick 异常(异常类型#15)。通过读取并判断计数值来实现精确延时,从0xFFFFFF向下计数到0。可以用作I2C、SPI通信中的时序控制,RTOS环境中作为心跳时钟

2025-02-24

STM32 HAL库0.96寸OLED显示液晶屏

本文介绍了使用STM32 HAL库通过I2C协议驱动0.96寸OLED显示屏的方法。首先概述了OLED的基本特性和应用,然后详细讲解了汉字点阵生成的方法,并提供了完整的代码示例,包括初始化、清屏、字符串显示和自定义汉字显示函数。这些代码实现了在STM32F103ZET6开发板上显示特定内容的功能,如英文句子和中文字符“慢慢变好”。

2025-02-23

仅需一个 HAL 库函数:轻松实现 STM32 的 SPI 编程(以 Flash W25Q128 为例)

主要介绍如何用HAL_SPI_TransmitReceive()函数实现对W25Q128 Flash存储器ID的读取。先介绍SPI是一种高速且简单的同步串行接口技术,由四根线((MOSI、MISO、SCLK和SS/CS))组成。接着介绍Flash ,它是串行闪存芯片,能提供更大存储容量。还提到STM32 HAL库简化了SPI编程,以正点原子精英V2开发板为例,给出开发环境及函数原型和参数。最后展示读取ID的代码示例,通过发送命令、接收数据并判断状态来获取ID。 

2025-02-22

STM32 HAL库I2C函数使用详解:以MPU6050传感器为例

引言I2C(Inter - Integrated Circuit)总线作为一种简单、高效的串行通信协议,广泛应用于各种传感器、存储器等设备的通信中。MPU6050 六轴传感器便是常见的基于 I2C 通信的设备,它能同时测量加速度和角速度,在机器人、无人机等领域有着广泛的应用。本文将详细介绍如何使用 STM32 HAL 库中的 I2C 函数与 MPU6050 传感器进行通信。一、开发环境。

2025-02-19

STM32 HAL库USART串口DMA IDLE中断编程:避坑

本文介绍STM32F103 HAL库USART串口DMA IDLE中断.坑在HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)的DMA的半满中断-UART_DMARxHalfCplt,关闭 DMA 的半传输完成中断    __HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT);   

2025-02-18

STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

​ HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防止数据丢失. ​

2025-02-18

STM32F103-HAL-UART-Receive-IT

,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数使用并指出问题,下一篇再解释解决方案:加入环形缓冲区. 主要是两个函数的调用和实现.HAL_UART_Receive_IT和HAL_UART_RxCpltCallback(huart)

2025-02-17

STM32定时器对象捕获功能测量市电频率

​ 在很多嵌入式系统中,精确地测量外部信号的频率是一个常见需求,尤其是对于需要同步外部电源(如市电)的应用。市电频率(50Hz或60Hz)是电力系统中一个至关重要的参数。在许多场景下,特别是UPS(不间断电源)和电力监控系统中,我们需要通过微控制器实时测量市电频率。 在这篇博客中,介绍如何使用 STM32F4 系列微控制器的 定时器2的输入捕获功能 来精确测量市电频率。我们不仅会展示如何配置硬件和编写代码,还会深入理论背景,帮助你全面理解这个过程。 一、硬件 1.1硬件设计思路 将市电(220V 50hz)信号输入到STM32F4微控制器的定时器输入引脚,输入交流信号分压电阻分压,经LM2904放大剪裁后变成方波,再输入MCU的计数器引脚。偏置电压为 1.65 V,幅值为 0.585V 的正弦波信号,通过增益为 21 的放大电路转换为方波信号。供电电压 ±5 V 对称电源,输出限制在 + 5  V 和 −5 V 之间。正弦波信号转换为方波信号的核心在于: 放大信号幅值:通过运算放大器将正弦波信号的幅值放大,使其超出供电电压范围,导致输出信号饱和,增益设置为 21,使信号放大到理论

2024-12-21

STM32 HAL库 + LM2904运算放大器 + ADC + 4-20ma液位传感器:电路设计及代码实现

 4-20ma液位传感器在工业自动化和日常应用中非常常见,例如水位监测、液体储罐管理等。本文将结合STM32 HAL库,带你实现一个简单的液位监测demo,从电路设计到代码实现,实现通过单通道ADC采集4-20ma液位传感器的信号,并通过串口将采集到的液位百分比打印输出。具体流程包括:通过分压电阻将获得4-20ma液位传感器的分压电压,再利用运算放大器LM2904对信号进行放大,随后将信号输入STM32的ADC2模块读取通道6(对应引脚PA6)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。

2024-12-13

STM32 HAL库 + LM358运算放大器 + ADC + VDO温度传感器:电路设计及代码实现

 本文将详细介绍如何使用STM32F407的HAL库,实现通过单通道ADC采集VDO温度传感器的信号,并通过串口将采集到的温度值打印输出。具体流程包括:通过分压电阻将获得VDO温度传感器的分压电压,再利用运算放大器LM358对信号进行放大,随后将信号输入STM32的ADC1模块读取通道9(对应引脚PB1)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。该电路在气压传感器等同样适用。

2024-12-03

STM32 HAL库 + LM2904运算放大器 + ADC + VDO温度传感器:电路设计及代码实现

本文将详细介绍如何使用STM32F407的HAL库,实现通过单通道ADC采集VDO温度传感器的信号,并通过串口将采集到的温度值打印输出。具体流程包括:通过分压电阻将高电压转换为低电压,再利用运算放大器LM2904对信号进行放大,随后将信号输入STM32的ADC1模块读取通道7(对应引脚PB0)。最终,处理后的温度数据通过串口1发送至串口助手进行实时显示。

2024-12-02

空空如也

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

TA关注的人

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