自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

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

对于任意一个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 1079

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

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

2019-05-30 10:33:08 10141 4

原创 求最小值的宏:#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 9142 5

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

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

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

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

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

2019-05-22 18:43:05 13043 2

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

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

2019-05-21 18:50:54 24813 23

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

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

2019-05-21 15:02:25 23158 18

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

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

2019-05-17 18:26:29 1884 2

原创 QT布局管理(2)-停靠吸附窗口类QDockWidget,可用鼠标挪动控件位置/调整大小、Tab嵌套

帮助文件中指出,QDockWidget只能在QMainWindow及其子类中使用QDockWidget的初始大小,实际上等于其子控件的QT推荐值大小sizeHint。由于sizeHint属性是只读的sizeHint(),如果想自定义QDockWidget的初始大小,只能继承一个QWidget或者QWidget的子类,并覆盖重写SizeHint()函数,在这个函数里返回自定义的推荐大小,详细步骤...

2019-05-17 15:46:05 7964 5

原创 QT样式表--父控件设置样式表后对子控件产生影响,控制styleSheet的作用范围

我在ui中拖了一个QWdget作为容器,在里面放入了一个GroupBox,groupBox中又放了几个按钮等,我对最外层的QWidget设置样式表:结果发现,里面所有的子控件、孙子控件的边框都变样了,如何避免这一情况?其实官方帮助手册里已经告诉我们了:就在帮助示例文档中,见下图只要在类名后面用#号串接变量名就行了,修改一下:效果如下,子控件已经不受影响了...

2019-05-17 10:42:53 12834 7

原创 QT布局管理(1)-分割窗口类QSplitter,可用鼠标任意拖动控件的大小

QSplitter继承自QFrame,但是无法在ui设计师界面直接拖出来,只能用代码来写。但是我个人喜欢用设计师来拖放控件,所见即所得,不喜欢用代码来写界面,那么该怎么用设计师界面来设计分割器窗口呢?我找了一个笨方法,原理步骤是这样的:1、在打算用QSplitter的地方,先用任意一个容器类控件(QFrame、QWidget、QGroupBox等都可以)在ui中把地方占下;2、把...

2019-05-17 10:33:06 10638 7

原创 QT样式表style sheet快速速查方法

QT自带的帮助文件中有丰富的样式表示例可供我们查询,直接在帮助文件的“高级搜索”中搜索style sheet,如下图所示,可查到3个最有用的部分:1、参考手册referance,2、示例example,3、语法,如下图所示参考手册referance一张截图如下:所有ui控件(按钮、Label、复选框、容器等等)的样式表介绍都在这张表里,点击下图中红色框的部分Customiziin...

2019-05-17 10:17:03 1985 2

原创 QT使用QListWidget+QChececkBox实现多选功能

功能需求描述:要求制作一个自定义控件CheckBoxList,控件中有N个复选框QCheckBox,当任何一个复选框反转时,该控件发出信号,信号指示出:此时哪几个复选框处于选中状态。解决方案:显示出一列复选框,用QListWidget来干最合适了,默认情况下QListWidget添加的条目item是纯文字,而这里我们要求添加的条目是复选框。同理,也可以使用树形控件QTreeWidget、表...

2019-05-16 21:39:19 15786 7

原创 QCustomPlot系列(5)-实时动态曲线

先来个动图看看效果:支持鼠标平移、滚轮缩放、框选放大、取消框选、一键全显、单击显示xy坐标值。。等平移功能是QCustomPlot自带的功能,参见我的该系列前面的博文。框选放大、全显等功能在另一篇博文中也讲到了。这里只讲2个知识点:1、显示鼠标指向的点坐标,2、实时滚动1、箭头指向要显示的坐标点,代码步骤:(1)添加新类,继承QCustomPlot添加private成员变...

2019-05-16 12:00:09 23250 36

原创 QCustomPlot系列(4)-时间轴做X轴-散点图-阶梯图

先看两个小知识:1、显示数据散点:ui->customPlot->graph(0)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc, 5));//散点2、连接散点的方式:customPlot->graph(0)->setLineStyle(QCPGraph::lsStepLeft);有好几种:折...

2019-05-11 16:51:06 12703 12

原创 QCustomPlot系列(3)-用鼠标矩形框进行框选放大、右键平移

QCustomPlot原本是不带这个功能的,不过既然有源码,也好改。原理很简单:1、记录鼠标按下/弹起的像素坐标,并转换为图像坐标,然后把轴的显示范围重新设置一下即可。2、如果在释放鼠标前按下了ESC键,那么就取消框选放大功能。先看一下效果:用鼠标画出一个矩形区域,释放鼠标后即可把图像放大到框选区。由于官方默认左键是平移曲线,我们先把平移功能改到右键(或者滚轮中键,根据你...

2019-05-11 14:44:21 11963 27

原创 QCustomPlot系列(2)-绘制两条曲线+自动全显+鼠标拖放+rescaleAxes()函数简介

如下图所示:官网给出了几个最简单的绘图示例,位于Basic plotting:接下来我们将以官网给出的绘制两条曲线为例,看看QCustomPlot的用法。先看下效果图首先在ui中拖出一个QWidget,命名为customPlot,然后右击提升为QCustomPlot,然后添加代码:以下代码是官网的,我把注释修改成了中文:MainWindow::MainWindow(QW...

2019-05-10 12:54:45 14552 7

原创 QCustomPlot系列(1)-功能简介、下载、配置

QT自带的绘图控件QChart实在是用的不舒服,点多了就卡顿,即使clear了series之后,仍然卡顿,这个bug不能忍,最终决定转向第三方绘图控件QCustomPlot。功能简介:QCustomPlot可以很方便的实现二维图的绘制,尤其是二维图常用的几个功能:鼠标拖拽、滚轮缩放、一键全显所有曲线、拖动条拖动图形等。这几个最常用的基本功能,在QChart中有些实现起来贼复杂,果断抛弃...

2019-05-10 11:44:42 6843 6

Free SolidWorks OBJ Exporter v2.zip

solidworks自定义宏,可以把solidworks模型转换为obj和mtl格式,教程:https://blog.csdn.net/qq_31073871/article/details/108407272

2021-10-09

3drradioconfig.zip

使用方法:https://blog.csdn.net/qq_31073871/article/details/103700835#comments_15477606

2021-03-18

QT多复选框.zip

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

2019-05-18

AU3自动发送163邮件

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

2015-09-05

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

TA关注的人

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