自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT的ToolBox实例

#include "mytoolbox.h"#include <QToolBox>#include <QGroupBox>#include <QVBoxLayout>MyToolBox::MyToolBox(QWidget *parent, Qt::WindowFlags f):QToolBox(parent,f){ setWindowTitle(QString::fromLocal8Bit("My QQ")); //设置主

2021-01-26 22:56:01 2299

原创 一阶滤波算法学习笔记

其特点对于周期干扰有良好的抑制作用(优)带来了相位滞后,导致灵敏度低(缺)不能滤除频率高于采样频率的二分之一(称为奈奎斯特频率)的干扰(例如采样频率为100Hz,则它不能滤除50Hz以上的干扰信号)(缺)滤波系数越小,滤波结果越平稳,灵敏度越低滤波系数越大,灵敏度越高,但滤波结果越不稳定公式推导如下采用matalab进行算法仿真:clc;clear;close all;q=0.5;tt=0:0.001:15;y_ideal=sin(0.5*tt);y_noise=awgn(y_

2020-12-12 14:19:42 2658

原创 基本对话框

1、标准文件对话框类名:QFileDialog

2020-12-09 22:56:38 411

原创 电阻,电容,电感学习笔记

复数J其实就是逆时针旋转90°的意思。电容的超前性和电感的超前性电容的串联电容的并联电感的串联电感的并联谐振的计算 – 就是阻抗计算的临界值。f=1/(2piwc)f=1/(根号LC)

2020-12-08 21:57:58 607

原创 直线加减速笔记

DecelerateFlag =0; FirstIntoDeceZeroFlag =0; DeceZeroAcc =0.0; CurPos=0; ObjPos=30000;%目标距离 count=0; remains=0; LinAcc=50;%设定的加减速 CNC_CurrentSpeed=300;%当前速度 x=zeros(1,19);%定义一个一维向量 y=zeros(1,19); while(CurPos<ObjPos) remains=ObjPos.

2020-11-26 22:16:08 322

原创 51单片机手册阅读笔记

1、看门狗看门狗的使用比较简单,只需要EN_WDT置为1,在设置PS2~PS0来设置溢出时间,喂狗操作是给CLR_WDT位置1即可,之后硬件会自动清除它为0,。2、中断51单片机的中断结构图首先EA是中断的总开关,接下来才是各个中断的中断位。51有4级别的中断优先级。中断函数定义格式如下51中断的查询顺序是中断的触发方式是定时器定时器有一个计数溢出标志位TF0,一个启动位TR0定时器模式寄存器USART串口是全双工通讯,都有一个发送缓冲器和接收缓冲器。波特

2020-11-11 23:10:53 705

原创 51基础知识学习笔记

1、8051单片机内部资源8051单片机包含了中央处理器程序存储器(ROM)数据存储器(RAM)定时器(2个16位可编程)四组8位IO口一个双全工串口通讯5个中断功能:2个外部中断,2个定时器中断,一个串口中断内置12M的时钟电路(注:需要一个外部晶振驱动)2、8051的总线8051具有8位数据总线,16位的地址总线,地址总线和数据总线是复用的。再用哈佛结构,程序存储器和数据存储器的地址空间各自独立。具有0~8K的程序存储器以及128B的数据存储器。通过P0和P2引脚可以扩展64K的寻

2020-11-07 07:38:19 290

原创 布局管理小作业

#include <QDialog>#include <QLabel>#include <QLineEdit>#include <QComboBox>#include <QTextEdit>#include <QGridLayout>class Dialog : public QDialog{ Q_OBJECTpublic: Dialog(QWidget *parent = 0); ~Dia..

2020-10-29 17:36:12 134

原创 QT布局管理学习笔记

1、QSplittle类的使用用于分割窗口#include "lqsplitter.h"#include <QApplication>#include<Qsplitter>#include<QTextEdit>#include <QTextCodec>int main(int argc, char *argv[]){ QApplication a(argc, argv); QFont Main_font("ZYSong18030

2020-10-27 17:46:57 347

原创 QT正则表达式学习笔记

正则表达式的基本公式表达式 + 量词 +断言表达式:量词断言使用正则表达的例子练习代码#include "qttest.h"#include "ui_qttest.h"Qttest::Qttest(QWidget *parent) : QDialog(parent), ui(new Ui::Qttest){ ui->setupUi(this); /* * 正则表达式限制输入字元的范围,第一个字符必须是字母,第二个字符必须是1~9,

2020-10-25 12:04:01 199

原创 51单片机驱动DS1302学习笔记

DS1302简介DS1302是DALLAS(达拉斯)公司出的一款涓流充电时钟芯片,2001年DALLAS被MAXIM(美信)收购,因此我们看到的DS1302的数据手册既有DALLAS的标志,又有MAXIM的标志;DS1302实时时钟芯片广泛应用于电话、传真、便携式仪器等产品领域,他的主要性能指标如下:1、DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软年自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。2、拥有31字节数据存储RAM。

2020-10-25 00:31:12 780

原创 QT学习复选框笔记

#include "mytreewidget.h"#include "ui_mytreewidget.h"#include "QDebug"mytreewidget::mytreewidget(QWidget *parent) : ui(new Ui::mytreewidget) //申请ui内存空间{ ui->setupUi(this); init(); // 指定某个控件 触发的信号 .

2020-10-23 23:20:35 285

原创 <Q5开发及实例>第二课

字符串类QString2)查询字符串数据(4)比较字符串3)字符串的转换2、QListl类、QlinkedList、QVectorint main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; QList<QString> list; QString str1("hello"); QString str2("work"); list&

2020-10-23 15:47:14 411

原创 Q5开发以及实例第一章学习笔记

1、QMainWindow、QDialog、QWidget的区别QWidget:是所有窗口的基类QMainWindow:窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。如下图所示:QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的。QDialog 没有菜单栏、工具栏、状态栏等,如下所示:窗口和控件都继承自 QWidget,如果不为控件指定父对象,它就会被作为窗口处理,这时 setWindo

2020-10-20 22:47:12 358

原创 stm32时钟学习笔记

有5个最重要的时钟源,为HSI、HSE、LSI、LSE、PLLLSI是低速内部时钟,RC振荡器,频率为32kHz左右。供独立看门狗和自动唤醒单元使用。LSE是低速外部时钟,接频率为32.768kHz的石英晶体。这个主要是RTC的时钟源HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。我们的开发板接的是8M的晶振。HSE也可以直接做为系统时钟或者PLL输入HSI是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。PLL为.

2020-10-17 19:11:55 479

原创 STM32工程的建立笔记

一、MDK5简介MDK源于德国的KEIL公司,它是由MDK CORE和 Software Pack组成从上图可以看出,MDK Core 又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。uVision IDE 从 MDK4.7 版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的 IDE 改进很大。Sof

2020-10-12 23:39:43 273

原创 c++第16课 --Map和multimap容器

map/multimap的简介map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。map可以直接存取key所对应的value,支持[]操作符,如map[key]=value。multimap与map的区别:map支持唯一键值,每

2020-09-26 09:46:34 139

原创 c++第十五课--set/multiset的简介

(1)set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。(2)set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。(3)set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。(4)multiset与set的区别:set支持唯一键值,每个元素值只能出现一次;而multiset中同一值可以出现多次。(5)不可以直接修改set或multiset容器中的元素值,因为该

2020-09-25 22:19:53 282

原创 《30天自制操作系统》第五天学习笔记

这一章主要讲的是显示字符和GDT、IDT字符的显示其实就是画出来,就是根据字的形状进行编码,比如:上面就是通过16个字节对字符A进行的编码。只有在有1的位置进行颜色填充,就可以出现字了。void putfont8(char *vram, int xsize, int x, int y, char c, char *font){ int i; char *p, d /* data */; for (i = 0; i < 16; i++) { p = vram + (y + i) *

2020-09-24 13:32:46 232

原创 《30天自制操作系统》第四课学习笔记

这一章只要是写了如何让屏幕显示我们想要的画面;汇编文件nasfunc.nas是用来写一些要用汇编开实现的一些功能:; naskfunc; TAB=4[FORMAT "WCOFF"] ; 制作目标文件的模式 [INSTRSET "i486p"] ; 使用到486为止的指令[BITS 32] ; 3制作32位模式用的机器语言[FILE "naskfunc.nas"] ; 文件名 GLOBAL _io_hlt, _io_cli, _io_sti, _io_stihl

2020-09-23 12:39:42 189

原创 linux内核结构学习笔记

linux的内核文件结构移植的话主要是看arch的文件目录,里面是关于芯片的代码。首先我们先阅读linux的内核的makefile文件1)首先我们先看内核是如何决定编译那些文件的查看顶层的makefile文件在这里插入代码片...

2020-09-15 00:56:33 178

原创 《30天自制操作系统》第三课学习笔记

今天作者写了一个真正载入内存的IPL,用来讲磁盘上的数据载入内存当中载入的程序节选是 MOV AX,0x0820 MOV ES,AX MOV CH,0 ; 柱面0 MOV DH,0 ; 磁头0 MOV CL,2 ; 扇区2readloop: MOV SI,0 ; 记录失败次数寄存器retry: MOV AH,0x02 ; AH=0x02 : 读入磁盘 MOV AL,1 ; 1个扇区 MOV BX,0 MOV DL

2020-08-23 12:48:26 258

原创 c++第14课 --list容器

list介绍1) list是一个双向链表容器,可高效地进行插入删除元素。2) list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err)3) #include list对象的默认构造list采用采用模板类实现,对象的默认构造形式:list lstT; 如:list lstInt; //定义一个存放int的list容器。list lstFloat; //定义一个存放float的list容器。list lstSt

2020-08-21 19:59:36 154

原创 uboot移植学习笔记

uboot的文件框架2、uboot的配置首先肯定是先对uboot进行配置,因为这个UBOOT支持很多的的板子和芯片,所以首先肯定是先设定一下参数例如:make tiny4412_config在顶层的makefile中,会执行下面的命令,就是去执行根目录下得脚本mkconfig%_config:: unconfig @$(MKCONFIG) -A $(@:_config=)就是相当于执行mkconfig -a tiny4412,它所进行的内容如下:1) 从 boards.cfg 文件中找

2020-08-20 19:08:27 196

原创 数据结构与算法笔记 --- 排序

1、插入排序算法:思想:从数组下标1的数据开始往前面比较。一次到下标为N为止#include <stdio.h>void Insert(int a[], int num);void Insert(int a[], int num){ int i = 0, j = 0,temp=0; for (i = 1; i < num;i++){ j = i; temp = a[i];//得到要插入的数据 for (; j>0, a[j - 1] > tem

2020-08-09 18:12:59 115

原创 <30天自制操作系统>读书笔记---第二天

1、常见寄存器;AX – accumulator累加寄存器CX – counter --计数寄存器DX – date 数据寄存器BX – base 基址寄存器SP – stack pointer 栈指针寄存器BP - - base pointer 基址指针寄存器SI - - source index 源变址寄存器DI - - destination index 目的变址寄存器(注:上面的寄存器都是16位的,32位的前面有个字母E,表示拓展的

2020-07-27 20:58:00 170

原创 第十三课---vector容器

vector容器1) vector是将元素置于一个动态数组中加以管理的容器。2) vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法)。vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时vector对象的默认构造vector采用模板类实现,vector对象的默认构造形式 vector vecT;vector采用模板类实现,vector对象的默认构造形式vector<T> vecT; vector<int&gt

2020-07-25 11:41:09 177

原创 数据结构与算法学习笔记---左式堆

左式堆:左式堆是一种支持合并的堆,合并是集合的基本操作,在第一节有谈到集合这种数据结构,其特点是数据结构之间没有任何关系,和数学中的集合是类似的。所有支持高效合并的数据结构都需要使用指针,但是可能会导致其它操作变慢。零路径长是指结点到一个没有两个儿子的叶子结点的最短路径长,空结点的最短路径长为-1,零路径长实际是结点的最短高度,也就是到最近树叶的距离。左式堆性质:(1)堆序性,一般左式堆都是使用最小堆(也可以实现最大堆),对于最小堆,任意结点关键字大于或等于其父结点的关键字,也就是key(i) &

2020-07-23 17:45:17 268

原创 linux多线程

多线程概念:进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。(就是防止进程某一部分等待,导致进程白白切换)线程的分类:1)用户级线程:主要解决上下文切换问题,调度算法和调度过程全部由用户决定,在运行时不需要特定的内核支持。缺点是无法发挥多处理器的优势2)核心级线程:允许不同进程中的线程按照同一相对优先调度方法调度,发

2020-07-21 11:51:32 3571

原创 第十二课c++ --- string

string和char 的比较1) string是一个类, char是一个指向字符的指针。string封装了char,管理这个字符串,是一个char型的容器。2) string不用考虑内存释放和越界。string管理char所分配的内存。每一次string的复制,取值都由string类负责维护,不用担心复制越界和取值越界等。3)string提供了一系列的字符串操作函数查找find,拷贝copy,删除erase,替换replace,插入insert*1、string的构造函数1)默认构造函数

2020-07-20 20:38:41 129

原创 第12课--c++STL基础知识

STL的基本概念STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采 用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文

2020-07-20 17:37:11 150

原创 数据结构与算法分析---二叉堆

堆,又称为优先队列。虽然名为优先队列,但堆并不是队列。堆和队列是两种不同的数据结构,堆是树态的,队列是线性的。在队列中,我们可以向队列添加元素,取出的时候是按照进入队列的先后顺序取出元素的,先进先出;而在堆中,却不是按照元素添加的先后顺序,而是按照元素的优先级取出元素二叉堆的特性:1.父节点的键值总是优先于任何一个子节点的键值;2.左右子树都是一个二叉堆二叉堆的操作:1)上浮:就是在末尾哪里插入数据之后,根据这个数据的优先级向上自动,比如插入212)下浮:就是取出最大优先级之后,要一层一层往下

2020-07-17 17:36:02 157

原创 第十一课C++异常

异常的机制,格式如下:try{对某个函数或者动作进行监测。在执行函数里面扔出相应的异常throw();}//后面可以抓取很多和catch(),编译器会根据//参数来进行匹配catch(char *s){}catch(int a){}catch(…)//表示剩下全部的情况#include <cstdlib>#include <iostream>using namespace std;class A{};void k(void){ //thro

2020-07-16 20:51:25 127

原创 数据结构与算法分析学习----散列

散列表的实现常常叫做散列(hashing),它是一种以常数平均插入,删除,查找的技术。但是这些元素间的任何排序信息的操作将不会得到有效的支持。就是每个元素都有一个KEY值,通过这个KEY值找到该元素,由于这个key值有可能是有冲突的,所以是散列最主要的是如何解决冲突问题1、分离链接法:如图:咋们可以对数据取然后将其存储到对应的表中即可。Hash(X) = X mod 10;这种方法的思路和了链表差不多。2、开放定址法分离链接散列算法的缺点是需要指针,由于给新的单元分配地址需要时间,导致算法速度多

2020-07-16 17:01:41 237

原创 第十课C++类型转换

在C语言中,类型的转换是统一的也就是 TYPE b=(TYPE)a,例如:int b=(int)a;在C++中就不一样了,C++提供了四种类型转换操作。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。static_cast 静态类型转换。如int转换成charreinterpreter_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型转换。const_cast, 字面上理解就是去const属性。4种类型转换的格式都是一样

2020-07-14 21:06:32 112

原创 函数指针和给特定地址赋值

1、给特定地址赋值的方法:比如给0x4E000000的地址赋值10(*(volatile unsigned *)0x4E000000)=102、函数指针定义需要用到关键字typedef例如:typedef int (*initOSFile_func_t)(void);这个时候initOSFile_func_t就是指针类型了3、直接调用地址例如跳转到0x31000000;( (void (*)( ))0x31000000 ) ( );...

2020-07-13 23:14:21 2543

原创 第九课C++函数模板和类模板

C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。模板的关键字是template类型形式参数的形式为:typename T1 , typename T2 , …… , typename Tn或 cl

2020-07-10 23:48:06 192

原创 linux进程通讯--消息队列和信号量

信息队列:消息队列与 FIFO 很相似,都是一个队列结构,都可以有多个进程往队列里面写信息,多个进程从队列中读取信息。但 FIFO 需要读、写的两端事先都打开,才能够开始信息传递工作。而消息队列可以事先往队列中写信息,需要时再打开读取信息。System V IPC机制:信息队列函数原型:#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>int msgget(key_t key, int

2020-07-10 16:07:25 302

原创 linux进程通讯 -- 共享内存

POSIX内存映射机制内存映射函数:mmap munmap msync函数原型:#include <unistd.h>#include <sys/mman.h>void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);int msync(const void *start, size_t length, int flags); //把对内存区域所做的更改同步到文件i

2020-07-09 16:06:59 152

原创 linux进程通讯--信号--管道

Linux 下的进程通信手段基本上是从 UNIX 平台上的进程通信手段继承而来的。而对 UNIX 发展做出重大贡献的两大主力 AT&T 的贝尔实验室及 BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对 UNIX 早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。 而 Linux 则把两者的优势都继承了下来...

2020-07-08 11:36:31 231

DSP2833x_Example.rar

DSP2833x_Example.rar

2021-04-08

空空如也

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

TA关注的人

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