自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(156)
  • 资源 (3)
  • 论坛 (2)
  • 问答 (1)

原创 qt文本转语音tts的使用方法,QTextToSpeech

这个功能已经被qt封装好了,在不同的操作系上封装了不同的方法。在win7上,qt调用的是微软讲述者(microsoft speech),这个功能在原版win中是自带的,在ghost或者阉割版win中是没有的。需要自己安装。在安装之前,先验证一下你的系统是否可用这个功能:如上图所示,打开控制面板-->文本到语音设置-->语言选择-->预听语音。如果能够正常朗读中文文字,那就说明你的电脑的TTS功能是正常的。如果不能没有声音,或者直接报错,你就必须得重新安装TTS。需要安装:

2020-09-28 14:09:37 28

原创 C语言与javascript(也即js)的区别

对于有C基础的同学来说,学js是相当简单的,语法类似,这里主要列一下两者的异同,基本上记住了这些异同点,就可以使用js了。不过C是编译性语言,js是解释性语言,差别还是不小的。1、js中的变量赋值时,除了基本类型以外,都是赋引用。2、两者都有回调函数的概念,而且函数名就是回调变量名...

2020-09-05 16:17:07 96

原创 solidworks导出obj模型和mtl材质

目录0、使用STL格式中转1、使用solidworks宏2、使用opencascade软件+step格式中转为何会有这种需求?因为大多数3D库,都支持导入obj模型和mtl材质,例如webGL、qt3D等,而我只会用solidworks进行三维建模,没有obj和mtl,程序写不下去了。。还有就是有人要把solidworks的模型,弄到三维渲染软件里进行渲染,某些渲染软件与solidworks兼容的格式只有obj。。经过一番调研,终于找到了方法。0、使用STL格式中转从网.

2020-09-04 17:01:54 103

原创 使用QT编译[vlc-qt]项目,播放RTSP等网络视频流

vlc-qt是一个国外大佬做的基于QT和VLC的开源项目,官网:https://vlc-qt.tano.si/在他的官网上可以找到项目的源代码(在git上),以及发行版。对于开发者来说,使用他的发行版是不够的,如下图所示,只提供了有限的几个版本,如果你使用的QT或者VLC与这个发行版不一致,是无法在此基础上进行二次开发的。...

2020-08-21 15:14:22 72

原创 ubuntu下QT5.13.1编译opencv2.4.13.6

下载opencv2.4.13.6的源码安装QT为避免权限问题,直接用sudo启动qt,如下图然后通过qt ->open project ,打开下载的源码的cmakeList.txt文件。打开后如下图所示:然后把[编辑构建配置]改成release模式,如下图所示。并设置好构建目录。然后修改CMAKE选项下面的CMAKE_INTALL_PREFIX的路径到你想要的位置,这个路径就是opencv编译出的库文件路径,记住他,后面要用。然后修改构建目标为:insta...

2020-06-19 16:18:32 109

原创 altium designer-绘制PCB封装footprint

一般有2种方法绘制PCB封装:一、直接建立空文件,二、使用向导一、从空文件建立PCB封装1、依次点击【文件】【新建】【库】【PCB原件库】,起名保存建议在画焊盘之前,先设置下网格间距,步骤如下,①右击绘图区,②栅格属性,③填写网格间距(注:100 mil = 2.54 mm)2、双击上一步新建好的PCB库,然后点击PCB Library选项卡进入PCB原件列表界面:3、在PCB元器件列表中右击,添加新的空白元件。下图我已经建立了多个元器件。4、点击软件工具..

2020-05-23 22:06:57 368

原创 altium designer绘制51单片机最小系统

一、绘制51单片机原理图库新建原理图库,并ctrl+s保存起来2、画出方框,并放置引脚,如下图。注意:画出第一个引脚后,可以双击修改它的编号为1,之后再次放置引脚时,编号会自动从1开始自加。3、在方框的左右两边放置引脚注意:新拖出来的引脚,带x号的一端,为将来要与导线连接的一端,所以,这一端要朝芯片的外部。按下空格键,可以实时修改引脚的方向4、编辑引脚定义。点击右下角的SCH,打开库浏览器,双击我们刚才建立好的这个原理图库文件(默认名称为Component_1...

2020-05-20 22:10:05 756

原创 STM32使用库函数设置系统时钟频率

参考原子哥的教程http://www.openedv.com/forum.php?mod=viewthread&tid=95570&extra=page=1,原子哥排版比较乱,这里自己记录一下,以STM32F103为例:库函数的默认的系统时钟流程是这样的:首先从汇编启动文件中调用C语言函数:void SystemInit (void)这个函数会设置一些...

2020-04-17 13:55:31 434

原创 QT多线程QThread::run()与QObject::moveToThread()标准用法

目录1、使用QThread::run()2、使用QObject::moveToThread3、常见的错误编程方法QT实现多线程有两种方法:1、继承QThread类,并重写run()函数;2、写一个对象worker,声明或new一个QThread变量thread,然后把这个对象移动到子线程中:worker.moveToThread(&thread);...

2020-04-07 15:26:47 582 3

原创 一阶RC电路的时间响应分析

自控原理电容的特性是,通交流阻直流。对于一个电容来说,加在它两端的交流电压的频率越高,通过的电流就越大,而且这个增大过程是线性的,也即常见的电容上的电流公式,电流正比于电压的导数:对于如下的RC电路:输入电压ui定义为x(t),求电容两端的电压uo(t),下面定义为y(t)。解:列出电压平衡方程:整理成一阶标准型:,其中,T=RxC做拉普拉斯变换:...

2020-03-07 13:57:13 633

原创 SPI详解,以STM32F4为例

通用SPI有4根线:①时钟线SCK。②主机输出从机输入MOSI。③主机输入从机输出MISO。④片选CS。推挽上拉master output slave in简称MOSI, chip select简称CS由以上四根线定义可见,SPI是区分主机、从机的。片选线的作用:主机通过拉低某个从设备的CS,来选中这个从设备。时钟SCK只能由主机发出,从机被这个SCK驱动。根据SCK的极性(...

2020-03-02 12:04:27 724

原创 用mission planner或者3drradioconfig软件配置X-ROCK数传电台

数传分天空端和地面端,上图这个是地面端。本质上是一样的,只是地面端集成了串口转USB,可以直接插到电脑USB上,而天空端是串口接口,如果你手头有串口转USB模块,也可以实现用两个天空端互传数据。需要注意的是,买到的数传有433M一对的,也有915M一对的。一个433和一个915显然是不能通信的。打开mission planner,依次点击下图->初始设置->可选硬件-...

2019-12-25 16:29:58 656

原创 让程序自动记录编译时间、文件名、函数名、行号等,以QT为例

C/C++/ASM等源代码文件被编译时,可以通过C/C++编译器的内置宏定义,把编译时间记录下来,常用的宏有这么几个:__FILE__ 包含当前程序文件名的字符串__LINE__ 表示当前行号的整数__DATE__ 包含当前日期的字符串 ,__STDC__ 如果编译器遵循ANSI C标准,它就是个非零值__TIME__ 包含当前时间的字符串__FUNCTION__ 函数...

2019-11-20 18:34:25 241

原创 指向成员函数的函数指针

C语言中的函数指针还是很简单的,这里还是稍微总结一下:函数地址: 函数名,&函数名,两者均可。 函数指针变量的定义方法: 把函数名替换为你喜欢的变量名,并在前面加*号,并把*号和函数名()起来。 函数指针类型的定义方法: 把上一步的变量名替换为你喜欢的类型名,前面再直接加typedef即可。例子:(1) 函数定义如下:char *parseF...

2019-11-14 16:35:43 83

原创 QT socket TCP通信程序模板--客户端

服务器端的操作是,建立server,然后进入listen监听状态,等待客户端发起连接。客户端的编程更为简单:(1)建立tcp socket(2)把QTcpSocket的3个关键的信号槽connect起来,3个信号如下:(3)把客户端QTcpSocke对象绑定(bind)与本机端口绑定。当然,也可以不绑定,操作系统会帮我们随机绑定一个可用端口。(4)向服务器发起连接请求:voi...

2019-11-09 17:37:46 277

原创 QT socket TCP通信程序模板--服务端

TCP通信,要区分服务端,和客户端。服务端的功能是,设置要监听的端口,然后等待客户端发起的连接。QT中TCP服务器端的编程步骤:(1)new一个TCP服务器 QTcpServer(2)进入listen监听状态(形参为:要监听的IP,一般填Any, 要监听的端口号)(3)一旦有客户端申请接入,服务端会产生消息QTcpServer::newConnection,在消息的处理...

2019-11-09 16:07:38 180

原创 QT socket UDP通信程序模板

现列出几个概念:①本地IP。对于运行在PC机上的程序,本地IP就是PC的IP,以windows为例,直接在命令行中执行ipconfig命令,即可查到本机IP,如下图:②远程IP。我们写的程序要把数据发送到哪个IP的哪个端口上,这个IP就是指的远端(远程)IP③端口号。本质上也属于协议地址的一部分,可以认为是某个IP下更细分的地址。可以这样理解,IP代表了一栋楼的楼号,那么端口号就代表了...

2019-11-08 15:28:55 194

原创 STM32的Code/RO/RW/ZI区、Flash/Ram的占用情况、堆栈大小Stack_Size/Heap_Size的设置

以cortex-M3为例,例如STM32F103这篇文章要讲2个问题:1、编译出的程序(指令)、变量的存放位置、大小?2、在代码和keil中,“堆、栈”两者的大小如何设置?keil编译完成后,会有提示,形如:Program Size: Code=1148 RO-data=424 RW-data=20 ZI-data=1636 其中:①Code为代码,本质上就...

2019-10-15 18:37:37 3902

原创 matlab/simulink中带参数的S-Function(S函数)的写法

S函数的相关概念与写法,直接在帮助文件中搜:【MATLAB S-Functions Create custom blocks defined】、【S-Function Concepts】等S函数模块可以从下图中拖出来:图 1其中S-Function是正宗的S函数模块,旁边还有一个S-Function builder是给新手用的,只要学会了S函数模块,S builder模块自然...

2019-10-12 11:54:44 2099

原创 欧拉公式的直观理解

知乎马同学关于欧拉公式的讲解:https://www.zhihu.com/question/41134540至于用泰勒公式展开来证明欧拉公式就不贴图了,老生常谈了,这里只贴一些直观上的理解,一旦记住了这些直观的图形,欧拉公式自然就记住了,感谢马同学。...

2019-10-11 14:22:26 171

转载 word通配符

https://www.duote.com/tech/word/111691.html^? 任意字符; ^# 任意数字;  ^$ 任意字母;  ^p 段落标记;  在通配符时,应使用^13代替^p^t 格式标记;  ^d 域;^w 空白区 (空格、不间断空格、以及任意顺序的格式标记);  ^f 脚注标记;  ^e 尾注标记;  ^b 分节符;  ^...

2019-10-10 09:37:51 990

原创 matlab面向对象编程的基本知识---声明与继承、构造函数、成员变量、成员函数、访问权限等

classdef quaternion < handle % 四元数 qa qx qy qz properties data = zeros(4, 1);%列向量 end methods %普通函数块--开始 function obj = quaternion(varargin) %...

2019-09-29 14:56:14 395

原创 matlab handle类和value类的区别

handle类和value类又分别叫做:句柄类和实体类。参考:https://blog.csdn.net/qq_43575267/article/details/94144564handle类的对象在赋值时,不创建新的拷贝,只复制一个句柄,类似于C语言指针。举个例子就明白了,如下:classdef quaternion < handle properties...

2019-09-29 14:24:25 927

原创 matlab转C语言的操作步骤(2)——同时转多个多函数+变量类型设置

如果变量类型设置错误,在转C时,会出现以下报错:Error using XX_mex (line 0)Incorrect class for expression 'studentHeight': expected 'single' but found 'double'.或者报这个错:This assignment writes a 'double' value into a 'si...

2019-09-20 10:47:42 854

转载 Makefile学习笔记(2)-编译选项CFLAGS,LDFLAGS,LIBS:-c,-D,-o,-g,-L,-I,-Wall,-mcpu等

转载:https://blog.csdn.net/xinyuan510214/article/details/50457433/https://blog.csdn.net/cym_anhui/article/details/80639877CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLA...

2019-09-16 10:28:47 430

原创 makefile学习笔记(1)- @^$符号的意义

makefile的基本用法如下,target:components ------<依赖语句>TAB rule ------<规则语句>这两行一般同时出现。第一行表示的是依赖关系,举例:某个.o目标文件依赖几个.c和.h,那么可以这么写: main.o:main.c mytool1.h mytool2.h又...

2019-09-16 09:56:50 99

原创 Keil打开工程时,解决“Loading PDSC Debug Description Failed”错误

网上搜到一个方法是,把Keil.STM32Lxxx_DFP.pdsc文件中,删除行“Message(2, "Not a genuine ST Device! Abort connection.");”,这个方法属于掩耳盗铃,只是不让他弹出错误而已。正确的解决方法是,安装与keil版本相匹配的pack包,以我自己的工程为例:我安装的keil是5.18,我下载了三个版本的pack,如下图:...

2019-09-12 11:42:26 2844 6

原创 matlab 4字节合并为float,2字节合并为uint16

例如:float a = 3.1415; 它对应的内存数据为0x40490E56,在小端架构中的内存布局为: [ 56 0E 49 40 ](HEX),也即: [ 86 14 73 64 ](DEC)。在matlab中运行结果为:再举一个例子:uint16 a = 511; 备注:511(DEC)=0x01FF(HEX)a的内存数据为0x01FF,在小段架构中的...

2019-07-18 11:47:26 894

原创 处理定长/不定长报文的标准流程

定长报文处理起来很简单,大多通信协议的报文结构都是这样的:stc-body-check-tail,假设每帧报文长为L字节。说明:stc(start char)为报文头字符,check为校验字(和校验、CRC校验等),tail为报文尾,也可以没有尾,很多协议会把校验字当做尾。1、把收到的字节都存进fifo,并发出通知,在通知的回调中开始处理报文2、通知的回调函数:(1)从fifo中p...

2019-07-18 10:40:28 443

原创 matlab面向对象编程

网上搜到的都是些零零散散的知识点,只有官方手册才是最全面的,直接在帮助文件中搜索:“Class Definition”,点开上面的“方法(函数)method”链接,可以看到:上图中红框部分讲解了,普通函数、构造函数、静态函数等的写法。...

2019-07-16 14:37:35 85

原创 matlab转C语言的操作步骤(1)——基本操作

以求3x3矩阵的逆矩阵为例:先看看在matlab中的运行结果:文章的最后,我们会看看转换出的C语言函数,在单片机上的运行结果。新建一个.m文件(这个文件必须是函数文件,如下图所示,而不能是脚本文件。而且matlab还有要求,函数名和文件名必须一致),在.m文件中把求逆函数写好,如下:在matlab'主窗口的app中找到coder工具,如下:弹出如下界面,...

2019-06-22 17:59:32 18279 8

原创 STM32+MS5611气压计测量海拔,IIC方式

气压转海拔的经验公式,自行搜索《气压温度求海拔高度》《关于大气压力与海拔高度经验计算公式的讨论》,这里贴两个参考公式:或者: 也即https://wenku.baidu.com/view/87130b0d168884868762d67a.html?from=search硬件连接:PS引脚决定了MS5611从哪个接口输出数据,PS拉高代表使用IIC接口,拉低使用SPI接口。...

2019-06-05 11:37:37 3731 7

原创 利用整数的环回特性打造高效计时器、补码反码、负数的内存布局

对于任意一个uint8的数字x,一定有:式① x + (~x) = 255 = (1111_1111)b 其中"~"是标准C语言运算符:按位取反式② x + (-x ) = 0 = (0000_0000)b那么① + 1 =255+1= (1111_1111)b + (0000_0001)b = (1_0000_0000)b,(1_0000_0000)...

2019-05-30 21:12:32 426

原创 STM32使用中断屏蔽寄存器BASEPRI保护临界段+中断分组+抢占/响应优先级概念

如果某些代码段不允许被中断打断,那么这段代码就必须用关中断的方式给保护起来,在UCOS中可以看到,一般保护方式有3种:(1)关闭中断(总中断或者指定的几个中断),执行临界段,开启中断(总中断或者指定的几个中断)。这个方法的弊端有两个:①执行完临界段之后中断总是打开的,即使在关闭中断之前,中断明明没有打开;②会干扰一些重要的中断的执行,例如systick,高精度定时器等。(2)把中断状态压栈...

2019-05-30 10:33:08 1409 2

原创 求最小值的宏:#define min(x,y) x > y? y: x 中的陷阱,慎用

求最小值的宏:①#define min(x,y) x > y? y: x。这个宏网上遍地都是,殊不知,这个宏存在严重bug。顺便再列一下,下面这几个宏也存在严重bug,使用前一定要仔细考虑②#define min(x,y) (x) > (y)? (y): (x)③#define min(x,y) ((x) > (y)? (y): ...

2019-05-29 22:26:18 2166

原创 STM32F1xx使用FIFO实现USART串口发送中断

fifo就不要造轮子了,用现成的就行了。linux内核中有目前人类写出的基于c语言的最强FIFO,请自行搜索学习《巧夺天工的kfifo》,或者我的另一篇博文《整数的环回特性》。直接把最常用的几个函数拷贝到STM32工程文件里,顺便把kfifo结构体中的自旋锁成员给屏蔽掉,这玩意只在多核才有用,在单核的32上没有作用,直接注释掉就行。然后把源码中自旋上锁、自旋解锁分别改成STM32的开中断...

2019-05-28 10:08:57 3691 3

原创 C语言“正则表达式”字符串处理sscanf(),使用前缀技巧、匹配邮箱等

一般的字符串处理函数可以使用C标准库的string.h,字符串匹配、字符串反转、在字符串中查找子串位置等。但string.h仍然满足不了我们的需求。来几个例题:(不允许使用c++)1、要求把一个字符串两端的空白符(可能有多个空格和TAB)给去掉,例如:“ asd123 qwer ”,要求处理完之后结果为:"asd123 qwer"。有人可能会想,这么简单的功能,手写一个函...

2019-05-22 18:43:05 2009

原创 QCustomPlot系列(7)-鼠标跟随显示坐标值(也即:十字游标功能)游标可以吸附采样点

先来个动图看看效果:这个动图中实现的功能有:1、十字线游标的X值跟随鼠标,Y值不跟随。2、游标的Y值跟随鼠标的X值对应的曲线的Y值,可以点击图例,更换游标跟随哪个曲线的Y值,3、游标不会出现在曲线中不存在点上,而是自动吸附到距离鼠标最近的曲线上的点。在QCustomPlot插入游标、绿色文本框,都很简单,可参考我的另一篇博客《QCustomPlot系列(6)-》。...

2019-05-21 18:50:54 7101 15

原创 QCustomPlot系列(6)-在图中插入文本框/直线箭头/图片/矩形/椭圆/游标等

效果图如下:QCustomPlot已经为我们提供了文字框QCPItemText、直线(可设置带箭头)类QCPItemLine。一、QCPItemText的基本用法:textLabel = new QCPItemText(this);//在QCustomplot中新建文字框textLabel->setPositionAlignment(Qt::AlignTop|Qt:...

2019-05-21 15:02:25 4955 7

原创 QT布局管理(3)--QLayout/QGridLayout/QFormLayout/QHBoxLayout以及sizeHint、sizePolicy

最基本的布局管理,在设计师界面中可以看到:各种布局类的继承关系:QLayout布局 QBoxLayout盒型布局 QHBoxLayout 水平布局 QVBoxLayout 垂直布局 QFormLayout 两列布局 QGridLayout 网格布局 QStackedLayout 堆叠布局 这些东西都是一目了然,不再赘述...

2019-05-17 18:26:29 578 1

QT多复选框.zip

QT5.8编译通过,相关介绍请搜索我的博客《QT使用QListWidget+QChececkBox实现多选功能》,链接https://blog.csdn.net/qq_31073871/article/details/90272780

2019-05-18

jdk-6u45-linux-x64.bin

解压密码:123 从java官网下载的jdk-6u45-linux-x64.bin,官网下载需要先注册,而且下载速度较慢,就传到这里来了

2018-05-02

AU3自动发送163邮件

实现了AU3自动后台静默发送163邮件!可以用来干坏事!

2015-09-05

如何把博客代码的背景默认改为白色?

发表于 2018-07-04 最后回复 2018-09-10

c语言如何调用lua写的函数?

发表于 2018-07-31 最后回复 2018-08-01

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