自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (7)

原创 为win10的python安装protobuf-cpp_implementation

最近用python版本的protocol buffer解码数据。发现与C++版本相比,python版本的解码速度慢很多,已经慢到了无法容忍的地步。因此,在github上查找解决方案。Github上有给出实验,由python实现的protobuf API速度的确很慢(这里是测试结果),但也给出了python调用C++库的解决办法。linux的安装步骤很简单,但却没给出windows的...

2019-12-21 15:32:02 229

原创 python层次聚类——基于sci库的代码实现和解释

一、代码from scipy.cluster.hierarchy import linkage, fclusterimport numpy as npfrom matplotlib import pyplot as pltdata = np.random.rand(100, 2)# 进行层次聚类(linkage返回聚类结果矩阵z)z = linkage(data, method ...

2019-11-28 19:12:58 252

原创 Android Hal实现

参考:视频一、HAL已经定义好的结构体这此三者是实现HAL时必不可少的结构体,定义在路径为 hardware/libhardware/include/hardware/hardware.h 的头文件中。在这先列出介绍,如何使用在下一节。struct hw_module_t;struct hw_moudule_methods_t;struct hw_device_t;typed...

2019-07-25 00:40:44 127 2

原创 Linux进程间通信:管道和FIFO

内容参考自:《Unix网络编程 卷2:进程间通信》一、管道(pipe)管道是最初的Unix IPC(interprocess communication, 进程间通信)形式。由于管道没有名字,只能用在有亲缘关系的进程间通信。1、创建管道linux为我们提供了pipe()函数来创建管道,函数定义如下:#include <unistd.h>int pipe(int ...

2019-04-01 15:16:51 207 1

原创 C++基础:const关键字

在编程的时候,我们有时候希望定义这么一个对象:其内容在初始化后不能再修改。这个时候const关键字就排上用场了。当一个对象被const修饰后,这个对象的内容在初始化后,再也无法被修改。值得注意的是,const修饰的对象必须要初始化。可以看看以下面的例子:int a = 10; //a是常量//const int i; //编译器报错,因为const修饰的对...

2019-03-29 21:06:31 119

原创 V-rep仿真:Python获取激光雷达数据

这几天打算使用Vrep机器人仿真平台做实验,但却在获取激光雷达测量数据的过程中遇到了困难:机器人所使用的雷达由两个vision sensor组成,但Vrep的remoteAPI没有接口可以直接获取传感器的深度数据,更没有接口直接得到雷达的测量数据。琢磨了几天,终于解决了这个困难,以下是我使用python获取Vrep场景内激光雷达测量数据的操作步骤。一、在Scene中添加一个激光...

2019-03-10 15:57:41 2560 4

原创 QtCreator定位程序异常崩溃位置

我在使用QtCreator开发软件的过程中,曾多次遇到过程序异常崩溃的情况,在输出窗口提示类似 xxx/build-xxx-Desktop_Qt_5_x_x_MinGW_32bit-Debug/debug/xxx.exe exited with code -1073741819 的语句。当程序代码量大的情况下,我们很难通过观察代码来发现产生错误的位置,此时,可以通过QtCreator的调试功能来快...

2019-02-23 11:46:10 3980 4

原创 Excel:Ribbon CustomUI为VBA宏创建自定义功能区选项卡

任务描述1、效果图2、功能描述(1)MyTab选项卡->Opposite按键:将选中单元格的数值变为相反数(2)MyTab选项卡->Round(Percentile)按键:将选中单元格的数值四舍五入保留两位小数,数值采用千分位表示,如123,456.78(3)MyTab选项卡->Round(Integer)按键:将选中单元格的数值四舍五入保留整数,数值采用...

2019-02-04 00:20:02 6137 4

原创 Pytorch:搭建RNN方法和过程分析

1、pytorch创建RNN模型和训练模型的代码import torchfrom torch import nnfrom torch.autograd import Variable#定义RNN模型class RNN(nn.Module): def __init__(self): super(RNN, self).__init__() se...

2018-12-22 22:12:22 3703 2

原创 log4cplus之基本使用方法及示例

(注:本文基于log4cplus2.0,根据本人的理解进行描述。如有不妥,请务必指正。)在了解log4cplus之前,我们可以先了解以下log4j的设计方法:一个著名的日志系统是怎么设计出来的?而log4cplus是log4j的C++实现,提供的接口和使用逻辑与log4j基本保持一致。下面的内容将简单介绍log4cplus并描述其使用方法:开头先了解一些基本的类(Logger、Append...

2018-12-10 17:04:10 9180 1

原创 log4cplus2.0之Hello world程序

这是 log4cplus 2.0及之后版本的最简单的示例,内容来自:https://sourceforge.net/p/log4cplus/wiki/CodeExamples/程序如下:#include <log4cplus/logger.h>#include <log4cplus/loggingmacros.h>#include <log4cplus/...

2018-12-03 17:21:35 729

原创 log4cplus2.0+Qt5配置过程记录(Mingw32编译)

注:以下的配置过程以log4cplus-2.0.x和Qt5.11.1为例。一、下载源码源码地址:https://github.com/log4cplus下载源码包,并解压。log4cplus-2.0.x.zip Catch-master.zip ThreadPool-master.zip二、CMake配置编译参数1、给环境变量Path添加mingw的bin目录路径:&lt...

2018-12-03 10:10:11 1364 2

原创 NetworkManager——nmcli命令连接WIFI、以太网和创建热点

像ubuntu server这样的服务器本版的linux系统是没有提供桌面的,只有终端。因此,我们不能用Setting的选项来配置网络。而在终端下,我们可以使用NetworkManager的nmcli命令对网络进行配置和操作。nmcli命令的操作又很多,本文只取了建立和删除wifi连接、启用和关闭连接、建立热点以及设置自动连接的操作为参考,更多更详细的描述请参考文档:https://devel...

2018-11-26 21:17:13 10267 9

原创 PCL滤波器的学习笔记

PCL提供了各种各样的滤波器,我在学习使用PCL库时简单地使用过其中一些。因此,在这里做个笔记。在我看来,使用滤波器的过程为:创建滤波器 -> 设置输入的点云和滤波器参数 -> 执行滤波并获得输出结果。不同的滤波器除了需要设置不同的参数外,其他过程是一致的。想弄明白怎么使用这些滤波器,可以先了解它们共有的方法。一、滤波器的基类在PCL库中,滤波器继承自一个基类Filter,...

2018-11-25 11:42:50 401

原创 PCL+QT配置过程记录(Ubuntu16.04)

我打算用PCL库做个实验,发现ubuntu下安装PCL库比较容易。因此,我在虚拟机的Ubuntu16.04中安装了QT和PCL库。以下是安装记录:1、安装PCL库$ sudo apt-get install libpcl-dev2、安装QT在 http://download.qt.io/official_releases/qt/ 选择合适版本下载,然后运行下载好的安装包即可。...

2018-11-23 09:47:19 2157 4

原创 QThread学习笔记

1、QThread用到的函数start()函数:会在新的线程中执行run()函数的内容。terminate()函数:可以终止线程。线程有可能马上终止,也有可能不会马上终止,这取决于操作系统的调度策略。在使用terminate()函数后使用wait()函数可保证线程终止(备注:在调用terminate()函数时,线程可能正在修改数据,这可能会让线程没有机会释放一些资源,包括自身使用的空间、互...

2018-11-13 20:42:49 276

原创 树莓派编译protobuf3

版本:protobuf3.6.1硬件:树莓派3b编译过程比较简单,先从github上下载源码包,然后执行如下命令:$ tar zxvf protobuf-cpp-3.6.1.tar.gz$ cd protobuf-3.6.1/$ ./configure$ make$ make install#默认在install后安装在/usr/local/目录下#./configur...

2018-11-13 20:22:19 1142

原创 树莓派3B-linux控制GPIO(不用树莓派的库)

这篇博客记录了我在用户程序中将物理地址映射到虚拟地址,然后使用虚拟地址控制树莓派3B的GPIO的过程。以下是整个过程的记录:1、下载数据手册和控制单片机IO口相似,如果用户想控制树莓派的GPIO,就得先知道GPIO相关寄存器的地址和设置的方法。树莓派的网站上提供了外设说明手册(Peripheral specification),这个手册对芯片上的外设怎么使用进行了描述。不过,Pi 3 的处...

2018-11-07 13:08:54 4913

原创 树莓派3b内核和驱动的交叉编译

树莓派原本的系统为:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi,系统安装后没有附带内核的库。为了可以在树莓派上使用自己编译的内核程序,我升级了树莓派的系统内核,并用升级时编译的内核库来编译树莓派上的驱动程序(用的是虚拟机Ubuntu16.04 amd64进行交叉编译)。0、获取源码和编译器资源链接:https://github.com/...

2018-11-04 21:13:33 1651

原创 QPointer的使用

QPointer是一个模板类,为QObject和继承QObject的对象提供了守卫指针(guarded pointers)。我们不仅可以使用操作T*的方法来操作QPointer<T>,还可以借助QPointer<T>来判断指针指向的对象是否未被释放。下面是 http://doc.qt.io/qt-5/qpointer.html 提供的示例://Qt提供的示例...

2018-11-04 03:16:39 1115

原创 QEvent-Qt自定义事件

当我们需要自定义事件时,可以先创建一个类继承QEvent://myevent.h#include <QEvent>class MyEvent: public QEvent{public: MyEvent(int value1, double value2); static Type eventType; //可以定义一些成员或者函数来...

2018-11-02 09:57:31 1491

原创 linux下编写hello驱动

新建一个文件hello.c,编写如下代码:#include <linux/init.h>#include <linux/module.h>#include <linux/moduleparam.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_...

2018-10-29 22:09:35 1297

原创 ROS串口编程学习笔记

串口是一种设备间常用的通讯接口,本文将记录如何在ROS上使用其提供的serial包进行串口通信。首先,这里要引入一个名称为serial的包,这个包的安装命令为:$ sudo apt-get install ros-<版本号>-serialserial包的介绍:http://wiki.ros.org/serial接下来,创建一个自己的包,借助serial这个包来编写串口...

2018-07-25 21:15:13 11411 30

原创 两轮差速驱动的机器人运动控制程序框架

这段时间在实验室做一个两轮差速驱动的机器人,控制机器人运动的程序框架在此记录一下。机器人的两个轮子分别由两个直流电机驱动,电机上带有编码器,可以测量轮子的转速和计算机器人的行程。机器人电机的控制由STM32来完成,STM32要根据上位机发送的命令控制机器人完成前进、后退和转弯等动作。STM32上实现的机器人控制的程序框架如下:​//wheels.c#include "wheels....

2018-07-20 19:47:07 9239

原创 STM32问题记录:这回Keil编译器背锅

最近写了个用环形缓冲区发送数据的STM32串口程序:使用头指针(front)指向下一个要发送数据,使用尾指针(rear)指向新数据存储的地方。中断里面会判断front和rear是否相等,如果相等则表示缓冲区为空,发送已经完成,关闭中断;反过来说,front和rear相等表示缓冲区还有数据要发送,那么就在中断里面把数据一个一个地发送出去。那么问题来了,我在存数据的时候写了这么一行代码:USART1_...

2018-05-29 16:57:32 366

原创 STM32填坑:时钟使能必须在外设初始化之前

最近在STM32上写了一份串口通信的程序,但下载复位后串口却不能工作,初始化的代码如下://发送/接收的GPIO、串口和中断的初始化结构体GPIO_InitTypeDef GPIO_InitStructureTx;GPIO_InitTypeDef GPIO_InitStructureRx;USART_InitTypeDef USART_InitStructure;NVIC_InitT...

2018-05-27 11:03:11 4262

原创 ROS之actionlib学习笔记

这两天学习ROS的ationlib机制,在此做一个demo作为笔记。本demo中,action的目标是读书,client向server发送要读多少页书(goal);server收到目标后开始执行任务,且向client反馈已经读到了第几页(feedback),并在完成读书任务后告知client;客户端得知server完成任务后,使用ros::shutdown()函数关闭自身节点。参考了大神的博客:h...

2018-05-20 20:01:45 1686

原创 PCL点云数据的VoxelGrid和RadiusOutlierRemoval滤波

VoxelGrid滤波器可以对密集的点云进行稀疏,减少计算机处理大量点云数据的压力;RadiusOutlierRemoval统计每个点周边的邻近点个数,过滤掉离群的点。将点云数据滤波并转化成PointCloud2在ros中发布的demo如下:#include <pcl/io/pcd_io.h> #include <pcl/impl/point_types.hpp...

2017-12-07 21:33:54 2178

原创 rosparam和ROS参数服务

机器人运行时,我们要对机器人的功能或传感器的参数进行设置。有些参数在机器人启动的时就设定好了,有的参数则是动态改变的。ROS提供了参数服务器来满足这一需求。

2017-10-26 05:00:22 22511

原创 Ubuntu16.04安装ROS和turtlebot

这几天学习机器人开发用到了机器人操作系统(ros),所以在这里记录一下配置环境的资料。(注:ros的api文档:http://docs.ros.org/)一、准备工作:说明:ROS安装在虚拟机中,虚拟机使用了VMWare Workstation11操作系统:Ubuntu 16.04.2 Desktop (64-bit) 二、安装过程ROS学习(二):在ubuntu 16...

2017-07-01 13:31:15 3014

原创 QT5实现简单的TCP通信

这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了一个客户端和服务器基于窗口通信的小例程。使用QT的网络套接字需要.pro文件中加入一句:QT += network一、客户端1、客户端的代码比服务器稍简单,总的来说,使用QT中的QTcpSocket类与服务器进行通信只需要以下5步:(1)创建QTcpSocket套接字对象socket = new Q...

2017-04-11 00:43:20 49871 70

原创 STM32串口通信(基于缓冲区)编程及遇到的问题总结

在写串口通信前阅读了STM32中文参考手册,然后满心澎湃地写代码。在这个过程中遇一些让人郁闷的事情,目前这些问题目前已经解决了,特此来总结一番。

2017-03-14 09:45:16 15174 4

原创 Qt5+OpenCV2.4.13配置教程

一、下载CMake和OpenCVCmake下载地址:https://cmake.org/download/OpenCV下载地址:http://opencv.org/我采用的版本是cmake-3.5.0-win32-x86.msi和OpenCV 2.4.13二、配置安装环境变量设置系统的环境变量,以本机为例把D:\CMake\bin和C:\Qt\Qt5.5.1\T

2016-11-11 17:06:33 6525 3

原创 STM32笔记:RCC结构与配置流程

以前使用STM32写程序的时候,使用的都是默认时钟。因此写数码管显示、A/D测量电压的时候都没有去关心RCC时钟配置这个事情。那时候只知道在配置外设的时候使用GPIO_InitTypeDef或者ADC_InitTypeDef这些结构体对外设进行初始化,以及使用RCC_APB2PeriphClockCmd或者RCC_ADCCLKConfig函数进时钟开启与配置。这几天尝试使用STM32的USB通

2016-09-08 20:21:11 8326

原创 QT5.5.1移植到cubieborad教程

一、环境说明-PC系统:ubuntu 14.04 x64- 编译器:arm-none-linux-gnueabi-gcc4.8.3- 开发平台:Cubieboard2-DualCard- 开发板系统:cubieez-cb2-bootcard-v2.2 二、下载源码QT源码官网下载:http://download.qt.io/official_releases/qt/5.

2016-03-04 19:49:28 1686

原创 QT5串口编程——编写简单的上位机

注:更新自2018年12月13日(我回看了一年多前写的这篇博客,觉得不是很好,故翻新了一遍。)最近在学习嵌入式,而上位机又是一个不可缺少的工具,于是就开始接触QT,学习编写上位机。刚开始的时候什么都不懂,发现《Qt 学习之路 2》有比较好的入门教程。学习了前面部分,对QT有了大概的了解后,就开始在网上寻找串口编程的方法。通过好几天的学习,终于写出了一个用于串口通信的上位机。下面开始介绍串口类的...

2016-01-30 15:51:48 91568 188

原创 某次double强转int时精度损失的情况以及原因分析

今日写了一段代码,把双精度浮点型强制转型成整形,发现所得结与预测不符。结果如下:既然4.14*100=414,为什么把强转之后得到的结果却是413呢?我们不如做个实验,测试一下原因。实验如下:测试发现414-(a*100)并不完全等于0,实际上有一定的误差。由f = (414-(a*100)) = 0.000000000和g = ((a*100)-414)

2015-12-19 00:37:53 4712

原创 Java事件监听小结

       在写程序的时候,事件监听经常用到,譬如说添加一个按钮,若要让按钮被点击之后程序能作出响应,就需要添加一个监听器。监听器有很多种,放在java.awt.event这个包下。最近由于写画图板,五子棋还有 2048,用得比较多的是MouseListener 、MouseMotionListener、ActionListener和KeyListener。       上述几个英文单词...

2014-08-18 14:31:18 101

原创 Swing界面之五子棋小结

        我写五子棋界面与画图板的方法相类似,也是用到了JFrame中创建窗体的方法,并且用JButton创建“悔棋”按键对象,添加到窗体上(我在窗体右边添加了一个JPanel对象来放置按键)。既然要实现下棋,那就需要用到监听器,我创建了一个Listener类,继承了MouseListener 和ActionListener(获得按钮的名字),分别添加到窗体上和按键上。也是因为重绘的原因...

2014-08-12 10:07:50 123

原创 Swing界面之画图板小结

 Swing界面实现画图板最近几天在蓝杰集训,编写了一个简单的画图板。 实现画图板,首先需要创建一个继承JFrame的类,用这个类中父类的方法创建一个窗体并添加按键,为窗体和上面的按键添加监听器(监听器继承了接口Mouselistener、MouseMotionListener和ActionListioner)。因为画图形需要在画板上获取坐标,所以添加的面板监听器是MouseL...

2014-08-12 00:10:45 352

QT5串口上位机|SerialPort.zip

通过几天的学习,自己也写了一个串口通信的上位机,比较简易,希望可以给大家带来帮助

2016-01-30

Excel自定义功能区示例

为VBA宏创建自定义功能区选项卡的示例,博客链接:https://blog.csdn.net/u014695839/article/details/86761584

2019-02-04

QT5串口编程——编写简单的上位机

博客在https://blog.csdn.net/u014695839/article/details/50611549,重新上传了一份串口上位机实例的代码

2018-12-27

QT5实现简单的TCP通信例程

一个基于QT5且简单易懂的TCP通信例程,包括客户端和服务器的实现

2017-04-11

QT5串口上位机实现 源码

通过几天的学习,自己也写了一个串口通信的上位机,比较简易,希望可以给大家带来帮助

2017-02-25

QT5简单串口通信工程

通过几天的学习,自己也写了一个串口通信的上位机,比较简易,希望可以给大家带来帮助

2017-02-22

QT5串口上位机工程

通过几天的学习,自己也写了一个串口通信的上位机,比较简易,希望可以给大家带来帮助

2016-01-30

空空如也

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