- 博客(40)
- 资源 (5)
- 收藏
- 关注
原创 4.AI大语言模型
大模型大爆炸阶段,有支持文本生成、逻辑推理、图片生成、视频生成、语言识别等各种单一大模型,也有支持多模态的大模型。普通人如何利用好这些工具来为我们服务。
2024-01-20 16:47:50 532
原创 3.opencv由浅入深--Mat类详解与使用
Mat-基本图像容器cv::Mat是OpenCV定义的用于表示任意维度的稠密数组,OpenCV使用它来存储和传递图像。Mat类很大、很全面,基本覆盖计算机视觉对于图像处理的基本要求。其成员变量、函数也比较多,了解其常用的成员变量、函数就可以完成大部分的工作。Mat类可以分为两个部分:矩阵头和指向像素数据的矩阵指针;
2022-11-09 23:50:42 2651
原创 嵌入式–实现最简单shell
实现一个shell难不难,本人曾经参考过很多开源的,都觉得他们的代码量比较多。下面我们将实现一个史上最简单的shell。最有两个源文件,代码量也非常少,同时也是拿来就可以用 ,shell.c 中删减了部分内容,移植好就可以用。......
2022-06-29 09:30:43 720
原创 嵌入式–滑动平均滤波算法
滑动平均值滤波是指先在RAM中建立一个数据缓冲区,依顺序存放N个采样数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的N个数据的算术平均值。这样,每进行一次采样,就可计算出一个新的平均值,从而加快了数据处理的速度。 ...
2022-06-20 17:10:50 415
原创 linux--知识体系
linux–知识体系这篇Linux从浅入深,先从应用程序讲起,最后讲写linux驱动,如果有时间就讲讲linux内核。linux应用程序学完这篇可以学会以下内容: 1.文件IO常用函数。 2.目录操作函数、文件重定向。 3.时间日期处理,网络时间同步(NTP)。 4.进程控制。 5.进程间通信。 6.信号处理、捕获,信号集。 7.线程操作。 8.线程同步、线程池的应用。 9.网络通信(包括本地域通信)。 10.文件、目录监控。 11.几种常用网络
2021-08-23 21:42:26 184
原创 深入Qt--类似安卓Toast提示框
深入Qt–类似安卓Toast提示框在开发安卓应用中经常点击按键的时候下方中间位置提示带文字的提示框。Qt同样也可以做到。头文件 toastdialog.h#ifndef TOASTDIALOG_H#define TOASTDIALOG_H#include <QDialog>#include <QLabel>#include <QTimer>class Toast : public QDialog{ Q_OBJECTpublic: e
2021-08-17 14:41:11 822
原创 嵌入式--环形缓冲在USART驱动中的运用
嵌入式–环形缓冲在USART驱动中的运用以下代码是基于stm32L475芯片编写的USART驱动,使用HAL库。其他方式也类似。秉承拿来即可使用的原则,直接贴代码。头文件 bsp_usart.h#ifndef __BSP_USART_H#define __BSP_USART_H#include <stdbool.h>#include <stdint.h>#include "stm32l4xx.h"/* extern variables -------------
2021-08-17 14:08:08 356
原创 深入Qt--禁用拷贝构造、赋值函数
深入Qt–禁用拷贝构造、赋值函数在实现某些类的时候,不支持拷贝构造函数、赋值函数,只需继承下面的类,充分利用面向对象技术实现。C++11以上可用。在深入C++专栏中还会提到,同时也会对new、delete等的修改,同时实现自己的内存池及自动回收机制,期待博主的,请关注博主哦。具体实现 Noncopyable.h#ifndef NONCOPYABLE_H#define NONCOPYABLE_H/** * @brief The Noncopyable class * 对象无法拷贝,赋值 *
2021-08-06 10:28:52 822
原创 深入Qt--应用程序启动初始配置
深入Qt–应用程序启动初始配置在写Qt应用程序时,程序中依赖配置文件,运行过程中会产生各种中间文件、缓存文件。应用程序需要一个环境配置,下面是我编写嵌入式设备的时候用的,仅限于单体架构的应用程序,部分核心代码已移除,请大家参考及提出宝贵意见。文件中调用的类库在前面的文章中有,请大家好好查阅。以下头文件在前面博文中都有源码提供。quiutils.hSingleton.hiniutils.h1.头文件 env.h#ifndef ENV_H#define ENV_H#include <
2021-08-06 09:50:07 987
原创 深入Qt--单例模式
深入Qt–单例模式4年前开始进入C++编程时看到好多前辈们在写单例模式的时候,在公司写的程序也是一样。都是在类中实现单例。下面要介绍的是基于模板编程实现的单例模式。如果对单例模式及模板编程不熟的发烧友,需要自行学习。实现比较简单:#ifndef SINGLETON_H#define SINGLETON_H#include <memory>template<class T, class X, int N>T& GetInstanceX(){ stat
2021-08-06 09:37:12 481
原创 嵌入式--需要懂的网站
嵌入式–需要懂的网站1.选型与芯片手册快速查找A.半导小芯 :半导小芯-芯片查询工具_芯片替代查询_数据手册查询_规格书查询_datasheet查询_IC查询 (semiee.com)平时查找芯片手册,相当方便,效率相当高,比在其他网站查看数据手册要快得多。B.立创商城:立创商城_电子元器件采购网上商城_领先的现货元器件交易平台-嘉立创电子商城 (szlcsc.com)种类齐全,价格及数据手册一目了然,原件、封装库直接下载即可使用,设计电路图、画PCB上上之选。电子工程师交流社区_电子发烧友
2021-08-06 01:00:08 1385
原创 嵌入式--需要懂的网站
嵌入式–需要懂的网站1.选型与芯片手册快速查找A.半导小芯 :半导小芯-芯片查询工具_芯片替代查询_数据手册查询_规格书查询_datasheet查询_IC查询 (semiee.com)平时查找芯片手册,相当方便,效率相当高,比在其他网站查看数据手册要快得多。B.立创商城:立创商城_电子元器件采购网上商城_领先的现货元器件交易平台-嘉立创电子商城 (szlcsc.com)种类齐全,价格及数据手册一目了然,原件、封装库直接下载即可使用,设计电路图、画PCB上上之选。电子工程师交流社区_电子发烧友
2021-08-06 00:58:15 1033
原创 深入Qt--封装Qt通用函数
深入Qt–封装Qt通用函数博主编写Qt应用程序这么多年,从终端调试软件、界面应用软件、音视频编解码软件、截屏录屏软件、推流拉流软件、OSG相关软件、输入法,积累一些方便使用的函数,现在只将部分公开出来。头文件:quiutils.h#ifndef QUIUTILS_H#define QUIUTILS_H#include <QObject>#include <QApplication>namespace QUIUtils { /** * @brief d
2021-08-05 11:33:38 1876
原创 深入Qt--背景半透明窗体
深入Qt–背景半透明窗体背景半透明在实际工程项目应用比较广泛,特别是嵌入式设备中,当一个窗体置在另外一个窗体的上方时下方窗口被一层半透明窗体覆盖,处于上方的窗体显示出来。下面将代码与用法提供出来。头文件:#ifndef MASKFROM_H#define MASKFROM_H#include <QWidget>class MaskForm : public QWidget{ Q_OBJECTpublic: explicit MaskForm(QWidget *
2021-08-05 10:33:16 746
原创 深入Qt--QMainWindow
深入Qt–QMainWindow从这篇开始对Qt基本控件、基本类库进行深入讲解,并在最后提供一个例子。QMainWindow简介QMainWindow类提供了一个主应用程序窗口。 主窗口为构建应用程序的用户界面提供了一个框架。Qt有用于主窗口管理的QMainWindow及其相关类。QMainWindow有自己的布局,你可以在其中添加QToolBars、QDockWidgets、QMenuBar和QStatusBar。布局有一个中心区域,可以被任何类型的小部件占用。基本布局如下:[外链图片转存失败,源
2021-08-05 10:18:52 490
原创 深入Qt--信号槽机制
深入Qt–信号槽机制信号槽简介信号-槽是Qt框架中最核心的机制,也是每个Qt开发者必须掌握的技能。信号-槽的使用方法,是在普通的函数声明之前,加上signal、slot标记,然后通过connect函数把信号与槽 连接起来。信号-槽要分成两种来看待,一种是同一个线程内的信号-槽,另一种是跨线程的信号-槽。所谓信号槽,实际就是观察者模式 (发布 - 订阅模式)。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号
2021-08-03 23:41:28 612
原创 深入Qt--元对象与属性
深入Qt–元对象与属性元对象与属性元对象元对象(meta object)意思是描述另一个对象结构的对象。对应的类为QMetaObject。元对象系统基于以下3点: 1.以QObject作为基类。 2.类声明的私有区域中,Q_Object宏指令使我们能够使用元对象的特性,比如动态属性、信号、槽等。 3.元对象编译器(**Meta-Object Compiler** moc)为QObject子类生成具有元对象特性的代码。通过QObject类的一个成员函数获得该类的元对象:QMet
2021-08-02 22:25:36 364
原创 深入Qt--ini文件读写
深入Qt–ini文件读写INI文件是Initialization File的缩写,即初始化文件,主要用来保存程序经常用到的一些配置参数。在Qt中可以使用QSetting类来实现ini文件的读取和写入。1.ini文件格式ini文件主要有节(section)、键(key)、键值(value)部分组成。节 (section) 用方括号括起来,单独占一行,例如:[section]键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:name=value2.对Qt QSett
2021-08-02 11:33:37 1357
原创 嵌入式--内存池
嵌入式–内存池直接上代码,自己体会。嵌入式设备,一般keil提供的堆很小,一般都不使用。使用内存池,自己可以调节内存大小。头文件 malloc.h#ifndef __MALLOC_H#define __MALLOC_H#include <stdint.h>#ifndef NULL#define NULL (0)#endif//内存参数设定.#define MEM_BLOCK_SIZE 32 //内存块大小为32字节#define MEM_MAX_SI
2021-07-30 15:42:35 663
原创 libevent--全局参数设置
libevent–全局参数设置libevent 有一些被整个进程共享的、 影响整个库的全局设置。 必须在调用 libevent 库的任何 其他部分之前修改这些设置,否则, libevent 会进入不一致的状态。下面对每个设置进行说明,并附代码,基于QT进行开发,例子只包含3个文件,pro项目配置文件,一个main.cpp文件。1.日志消息 Libevent在默认情况下,会将这些日志信息输出到终端上。Libevent允许用户定制自己的日志回调函数。所有的日志函数在最后输出信息时,都会调用日志
2021-07-30 15:22:50 221
原创 libevent--开发环境搭建
libevent–开发环境搭建Libevent 是用于编写高速可移植非阻塞 IO 应用的库。1.libevent包含组件a.evutil:用于抽象不同平台网络实现差异的通用功能。比如window 的socket,需先初始化WSAStartup,最后WSACleanup清除相关协议。linux中没有这些函数。b.event 和 event_base: libevent 的核心。c.bufferevent: 为 libevent 基于事件的核心提供使用更方便的封装。d.evbuffer:在 buff
2021-07-30 14:28:29 344
原创 深入Qt--pro文件解析
Qt pro文件解析在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件。1.pro文件例子创建Qt工程后,在工程目录中自动生成 pro文件。下面有个例子:QT += core gui sql network serialport charts xmlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# You can make your code fail to
2021-07-30 10:11:20 2806
原创 嵌入式--环形缓冲(2)
嵌入式–环形缓冲(2)不记得是哪位大神的github,当时自己写环形缓冲的时候,想找一些来参考,发现这两个环形缓冲同样好用,不管带OS或者裸机,用上这些模块,感觉代码就上了一个档次。头文件 ringbuffer.h/******************************************************************************@brief 环形缓冲区管理(参考linux/kfifo)*******************************
2021-07-29 11:35:34 175
原创 嵌入式--环形缓冲(1)
嵌入式–环形缓冲(1)感谢RT-Thread Development Team,这个模块是他们设计出来,很好用,一直用到现在,之所以取名为环形缓冲(1),还有一个取自于linux的环形缓冲,在下一篇文件粘贴出来,感谢大佬们。头文件 ringbuffer.h/*Copyright © 2006-2018, RT-Thread Development Team*SPDX-License-Identifier: Apache-2.0*Change Logs:Date Aut
2021-07-29 11:22:59 326
原创 嵌入式--轮询调度模块
嵌入式–轮询调度模块参考别人设计,感谢大佬的付出。此模块用在裸机中作为时间片调用,代码层次清晰,并非所有编译器支持,谨慎使用。头文件 module.h#ifndef __MODULE_H#define __MODULE_H#include <stdint.h>#include <stdbool.h>#ifdef __cplusplusextern “C” {#endif/* define variable -----------------------------
2021-07-29 11:14:26 530
原创 嵌入式--按键事件模块
嵌入式–按键事件模块从github那边淘来的,不知道是哪位大神写的,在此感谢他的付出。也不知道叫什么模块,暂且叫它按键事件模块吧。头文件 multi_button.h#ifndef MULTI_BUTTON_H#define MULTI_BUTTON_H#include “stdint.h”#include “string.h”//According to your need to modify the constants.#define TICKS_INTERVAL 5 //ms#
2021-07-29 11:01:55 697 2
原创 嵌入式--软件定时器
嵌入式–软件定时器从github那边淘来的,不知道是哪位大神写的,在此感谢他的付出。头文件 multi_timer.h#ifndef MULTI_TIMER_H#define MULTI_TIMER_H#include “stdint.h”#include “stddef.h”typedef struct Timer {uint32_t timeout;uint32_t repeat;void (timeout_cb)(void);struct Timer next;}Timer;
2021-07-29 10:44:47 524
原创 嵌入式--队列容器
嵌入式–队列容器直接上代码,自己体会。头文件 queue.h#ifndef _QUEUE_H#define _QUEUE_H#include <stdint.h>#include <stdbool.h>#ifdef __cplusplusextern “C” {#endiftypedef struct {void *base; /队列容器基地址/uint16_t element_size;
2021-07-29 10:21:54 164
原创 嵌入式-订阅发布资源池
嵌入式-订阅发布资源池直接上源代码,自己体会。头文件 topic.h#ifndef __TOPIC_H#define __TOPIC_H#include <stdint.h>#include <stdbool.h>#define TOPIC_POOL_MAX (40) // 主题资源池最大支持主题数typedef void (TopicCb)(void msg);bool Topic_Init(uint8_t topi
2021-07-29 10:14:49 389
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人