自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 Indicator Control and Virtual Timer Library for Embedded Systems [嵌入式系统指示灯控制和虚拟定时器库]

The Indicator Control and Virtual Timer Library is a comprehensive software solution designed to address the nuanced needs of embedded systems in managing and controlling indicator devices, such as LEDs, buzzers, and other similar output peripherals.

2024-03-23 17:11:46 590

原创 A Brief Introduction of the Violin Plot and Box Plot

A Brief Introduction of the Violin Plot and Box Plot.

2024-03-03 21:29:31 1009

原创 A Brief Introduction of the Tqdm Module in Python

A Brief Introduction of the Tqdm Module in Python.

2024-03-03 21:25:23 817

原创 Create functions dynamically within a loop but appear to have the same behavior?

When you create functions dynamically within a loop, you may encounter a common issue where all dynamically created functions appear to have the same behavior. This is due to a scoping behavior called late binding closures.

2024-02-02 11:41:36 382 1

原创 为特征向量数据(1D数组)叠加噪声实现数据增强

数据增强(Data Augmentation)是一种在训练机器学习和深度学习模型时使用的技术,旨在通过对原始数据进行小的、随机的修改,来增加训练集的大小和多样性。这种增强的方法可以帮助模型学到更多的数据变化,从而增强模型的泛化能力,并减少过拟合。

2023-09-11 16:59:07 679

原创 常见信号滤波方法(卡尔曼滤波、滑动平均、异常值剔除)的原理解析与C语言实现

卡尔曼滤波、滑动平均和异常值剔除是信号处理和数据分析中常用的滤波和平滑技术。这些方法旨在从测量或采集的数据中提取有价值的信息,同时减少噪声和不必要的波动。

2023-09-05 16:24:26 2647

原创 机器学习样本数据划分的常用Python方法

机器学习样本数据划分的典型Python方法详解。

2023-08-16 19:30:53 590

原创 基于PyTorch的深度学习模型中的张量(Tensor)尺寸变换操作

卷积神经网络模型中的数据尺寸变换详解。

2023-08-16 14:13:57 241

原创 机器学习常用Python库安装

Anaconda and Miniconda are distributions of Python and other packages for data science, while Conda is the package manager that installs, updates, and removes them.

2023-08-06 18:06:52 845

原创 使用DMA传输实现单片机高效串口转发——以STM32系列为例

STM32的DMA系统是一项强大的功能,允许高效的数据传输,同时减轻了CPU的负担。直接转发模式的核心实现过程为:对于接收数据的DMA通道,将串口的数据寄存器地址设置为源地址,并设置一个内存地址为目标地址。对于发送数据的DMA通道,将之前设置的内存地址设置为源地址,将另一个串口的数据寄存器地址设置为目标地址。中断服务程序处理:在USART1的中断服务程序中,读取接收到的数据,并触发与USART3关联的DMA传输。在USART3的中断服务程序中,读取接收到的数据,并触发与USART1关联的DMA传输。

2023-08-06 17:54:51 3560

原创 Modbus协议简介与常用测试指令说明

Modbus是一种通信协议,广泛用于工业控制系统之间的通信。它由Modicon(现在的施耐德电气)于1979年开发,用于与其PLC(可编程逻辑控制器)进行通信。Modbus协议主要有两个版本:Modbus RTU和Modbus TCP/IP。

2023-08-04 09:29:08 1442

原创 单片机外部晶振故障后自动切换内部晶振——以STM32为例

时钟信号是单片机的心跳,对嵌入式系统的长期稳定运行有着至关重要的作用。现代单片机的时钟信号一般都支持外部时钟、外部晶体振荡器、内部RC振荡器等形式的输入。外部晶体振荡器(晶振)由于其高精度、高稳定性、低温飘、低成本的特性,广泛应用于各类对通讯、时间、性能要求严格的场合。本文所述的设计方法,能够在外部晶振故障后自动切换到内部晶振,提高系统的可靠性与稳定性。注意,上述示例只在单片机启动时进行时钟源检测,因此,如果是处理运行时的突发时钟故障,需要设计配套的看门狗,在系统陷入异常状态后自动重启系统。

2023-08-02 13:17:20 2889

原创 基于Qt/libmodbus框架开发modbusRTU主机模块(二)- 应用场景

基于libmodbus与C++/Qt框架的modbus-RTU主机插件开发之应用指南

2023-03-21 14:29:24 640 1

原创 基于Qt/libmodbus框架开发modbusRTU主机模块(一)- 插件开发

基于libmodbus与C++/Qt框架的modbus-RTU主机插件开发。

2023-03-21 14:24:49 1520

原创 QSettings介绍与使用

QSettings类提供了持久的跨平台应用程序设置。用户通常期望应用程序记住它的设置(窗口大小、位置等)所有会话。这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中。在Unix系统中,在缺乏标准的情况下,许多应用程序(包括KDE应用程序)使用INI文本文件。QSettings围绕这些抽象技术,使我们能够以便携的方式保存和恢复应用程序设置。它还支持自定义存储格式。QSettings API基于QVariant,可以保存很多基础的类型,比如 QString、QRect、QImage等。

2022-12-28 20:44:51 517

原创 Qt延时处理的四种方法

这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。可以延时,但也会阻塞线程。它可以使得程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句。创建子事件循环,在子事件循环中,父事件循环仍然是可以执行的,这种方法不会阻塞线程。方法不会释放对象锁,其他线程无法访问对象,因此会阻塞线程;上述代码使程序延时10 s,但是这种方法也会阻塞线程。

2022-12-28 20:16:40 1908

原创 C++重载输出运算符”<<”和输入运算符”>>”

在 C++中,左移运算符

2022-12-17 16:49:49 1011

原创 Qt中自定义数据类型的创建及使用

在Qt的项目开发过程中,特别是在制作一些特殊界面时,通常框架中自带的数据类型难已满足具体的要求,这时就需要开发者自己创建新的数据类型来扩展或替换原有的数据类型。本文将详细介绍自定义数据类型的方法以及如何将其集成到Qt对象模型中,为大家提供参考。

2022-12-17 15:49:12 588

原创 手动编译与安装Qt的子模块

手动编译与安装Qt的子模块的教程,以QtScript模块的手动编译安装为例(平台:Windows 10 & Qt 5.14.2-MSVC)。

2022-11-25 10:49:20 826

原创 QT中为程序加入超级管理员权限

QT的一些文件操作,注册表的操作等,有些操作会无效,主要是因为没有对C盘的相关权限。通过为程序加入超级管理员权限可以解决此问题。

2022-10-21 19:05:43 1691

原创 Typora + PicGo + Gitee或GitHub实现markdown图床

图床就是一个便于在博文中插入在线图片连接的个人图片仓库。设置图床之后,在自己博客中插入的图片链接就可以随时随地在线预览了,并且不会因为任何意外原因无法查看,除非自己亲自删除。

2022-10-14 19:31:03 132

原创 TMC260系列电机驱动芯片应用介绍

TMC260系列电机驱动芯片应用介绍,包括硬件参数介绍、软件开发、硬件电路设计等。

2022-10-14 19:07:57 984

原创 基于单向链表结构的软件虚拟定时器的设计与构建

本文设计的软件虚拟定时器就是基于一个单向链表进行管理的。通过SList_Traversal方法可以遍历链表的节点并执行注册的回调函数。在回调函数中可以实现数据的类型还原、定时器状态更新等一系列的处理。通过SList_PushTail方法实现链表的节点添加(注册新的定时器),通过SList_RemoveNode方法实现链表的节点删除(移除注册的定时器)。具体的实现可以参考软件定时器的源码。...

2022-07-30 16:24:56 385

原创 基于VS Code搭建通用ARM微控制器开发平台

基于VS Code搭建通用ARM微控制器开发平台

2022-04-12 20:46:14 3296 2

原创 Qt Plugin插件开发指南(4)- 使用插件管理器

应用程序如果需要使用插件化开发,那么应当使用插件管理器对众多插件进行管理。

2022-03-30 13:33:13 1526

原创 Qt Plugin插件开发指南(3)- 插件中窗体的显示

在使用QtPlugin机制开发插件时,有时候为了调试或者控制方便,会在插件中设置一个接口调用内嵌的窗体,并在此窗体上完成一些与插件相关的设定与调试功能。笔者的开发的插件项目,一般会预留一个获取面板的接口,用于获取内置的窗体。

2022-03-30 13:26:26 780

原创 Qt的版本判断、跨平台选择与pro工程文件输出设定

介绍了Qt的跨平台选择与Pro文件中关于项目输出目录的设定,并提供了一个标准的、包含框架子项目的示例。

2022-03-30 13:12:42 3660 1

原创 C++/Qt中调用Python模块

开发环境搭建作为一种胶水语言,Python 能够很容易地调用 C 、 C++ 等语言,也能够通过其他语言调用 Python 的模块。Python 提供了 C++ 库,使得开发者能很方便地从 C++ 程序中调用 Python 模块。值得注意的是,Windows平台下的Python提供的静态库接口只支持MSVC编译器。

2021-08-31 10:55:03 766

原创 Qt Plugin插件开发指南(1)- 一般开发流程

插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序。插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,插入和修改,所以结构很灵活,容易修改,方便软件的升级和维护。Qt提供了两种API用于创建插件:一种是高阶API,用于扩展Qt本身的功能,如自定义数据库驱动,图像格式,文本编码,自定义样式等;一种是低阶API,用于扩展Qt应用程序。本文主要是通过低阶API来创建Qt插件,并通过静态、动态两种方式来调用插件。

2021-08-31 10:49:22 3236 2

原创 Qt Plugin插件开发指南(2)- 工程框架设计

Qt Plugin插件开发指南(2)- 工程框架设计

2021-08-31 10:46:19 678

原创 使用QSettings保存和读取自定义数据类型

使用QSettings保存和读取自定义数据类型

2021-08-31 10:35:04 1761

原创 QT4.8.6的交叉编译 - 编译平台:Ubuntu 20.04 LTS,目标平台:linux/imx6ull

QT4.8.6的交叉编译 - 编译平台:Ubuntu 20.04 LTS,目标平台:linux/imx6ull

2021-07-15 20:38:06 1128

原创 STM32F103/F407的FreeRTOS移植

STM32F103/F407的FreeRTOS移植版本记录表FreeRTOS简介官方网站FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions源码FreeRTOS_V10.4.1_Source.rar移植步骤(以STM32F103为例)添加FreeRTOS源码至项目文件官网下载源码,并解压。Source文件夹中的

2020-12-04 14:55:19 1271

原创 PID算法库

日期作者版本说明2020.10.29TaoV1.0Release as V1.0目录PID算法介绍源码头文件源文件使用指南直接使用声明并定义PID类型数据(或数组)根据需要修改PID参数计算PID输出值间接使用PID算法介绍PID即:Proportional(比例)、Integral(积分)、**Differential(微分)**的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法,该...

2020-12-03 14:21:27 2039 4

原创 C语言模块化设计控温器的实现

C语言模块化设计控温器的实现版本记录表设计思路设计一个控温器模块由加热器、制冷器、算法器三个子模块构成。控温器负责三个模块的协同工作以及与外界交换信息(设定值、实时值、控制参数等),并根据这些数据去配置或者设定三个子模块。算法器负责根据设定值、实时值的偏差计算一个输出量,并将这个输入量分别转化为加热器与制冷器的工作功率。制冷器与加热器根据算法器计算的结果,调整自己的功率输出。通过OOP的设计方法,将控温器作为一个整体封装起来,使之成为一个独立的部分(目前算法器中的部分参数仍然直接依赖外部全局变量完成初

2020-11-14 17:23:55 1148 2

原创 C语言对传感器对象进行封装(OOP)

C语言对传感器对象进行封装(OOP)版本记录表背景介绍C语言不支持OOP(面向对象的编程)。并这不意味着我们就不能对C进行面向对象的开发,只是过程要复杂许多。原来以C++的许多工作,在C语言中需我们手动去完成。面向对象的三大特性:封装、继承、多态为复杂的程序开发带来了很多的便利与灵活性。如果用C语言来实现OOP,关键在于结构体。struct和OOP中的class最大区别为默认的继承访问权限:struct是public的,大家都能看到,class是private的,只有指定的对象看得到。通过为虚函数表中

2020-11-14 17:19:15 560

原创 STM32开发项目:微秒级的精准延时 - 使用system tick/DWT寄存器/NOP命令

日期作者版本说明2020.10.29TaoV0.0完成主体内容的撰写目录背景源码头文件源文件使用指南背景源码头文件#ifndef __DELAY_H__#define __DELAY_H__ #include "stm32f10x_conf.h"#include "stm32f10x.h"//#define USE_SYS_TICK#define USE_DWT//#define USE_NOP_DELAYvoid delay_in...

2020-11-09 14:54:30 4666 2

原创 FreeMODBUS库的扩展与增强(3)- 组织Modbus的用户业务逻辑

日期作者版本说明2020.11.06TaoV0.0完成主体内容的撰写目录介绍源码头文件源文件使用指南介绍源码需要特别说明的是void User_MB_InitPortParam(uint8_t portNum, uint32_t baudRate, eMBParity parity)函数。此函数并没有真正的配置通讯端口,而是初始化modbus通讯端口参数的几个全局变量。设计这些全局变量的主要原因是,在整个项目工程中还涉及其他地方需要用到这些参数,例如串口的中断服务函...

2020-11-06 15:17:00 454

原创 STM32开发项目:STS-31高精度温度传感器的驱动程序

日期作者版本说明2020.11.05TaoV1.01. 完成了主体内容的撰写目录STS-31介绍驱动源码头文件源文件应用指南定义并初始化设备结构体变量配置STS-31芯片读取STS-31温度特别说明STS-31介绍详细参数请查看官方数据手册。驱动源码本驱动是基于软件模拟I2C库设计的,利用了它提供的I2CDevice_Struct数据类型以及I2C通讯所需要的接口。头文件/* * sts31.h * * Created on: Jun 2, 2020...

2020-11-05 20:43:48 873

原创 STM32开发项目:STM32F407的BootLoader程序

日期作者版本说明2020.11.03TaoV0.0完成主体内容的撰写目录BootLoader程序介绍源码实现源文件stm32f4_flash.ld使用指南设置用户程序下载位置(stm32f4_flash.ld)修改中断向量表偏移量BootLoader程序介绍BootLoader其实就是一段启动程序,它在芯片启动的时候首先被执行,它可以用来做一些硬件的初始化,当初始化完成之后跳转到对应的应用程序中去。例如,我们可以将Flash分为两个区,一个是启动程序区(0x0800 ...

2020-11-03 22:09:12 3107 2

ModbusPoll工具&官方协议部署指南-合辑

1. ModbusPoll工具(软件工具) 2. 官方Modbus协议部署指南(pdf)

2023-08-04

ewhales-libmodbus-3.1.6-master.zip

文件包含: 1. libmodbus-3.1.6源码 2. 交叉编译教程(target: 嵌入式Linux系统, paltform: arm A7 imx6ull) 3. 源码修改增强指南

2020-05-05

空空如也

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

TA关注的人

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