自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 使用secureCRT将树莓派与电脑连接备份

备份

2023-01-02 15:24:30 183

原创 qt 串口接收不完整

Qt 官方串口库QSerialPort的 readyRead() 信号,只要有数据就抛出,这就导致一条数据分多次抛出。由于正常的数据没有固定的开头和结尾,这就导致无法获取正常的一组数据。方法一:确定一个完整的开始标志和结尾标志解决思路:增加接收延时功能,把多次读取的数据保存到缓冲区,延时结束,一次性读取数据示例:QSerialPort *serialPort= new QSerialPort();connect(serialPort, SIGNAL(readyRead()), this, S.

2021-07-03 17:25:08 2070

原创 编码器的使用

首先来看一下增量式编码器的输出信号和它的信号倍频技术。增量式编码器输出的脉冲波形信号形式常见的有两种: 一种是占空比50%的方波,通道A和B相位差为90°; 另一种则是正弦波这类模拟信号,通道A和B相位差同样为90°。 对于第1种形式的方波信号,如果把两个通道组合起来看的话,可以发现A和B各自的上升沿和下降沿都能计数,至少在1/2个原始方波周期内就可以计数一次, 最多1/4个原始方波周期。这样计数频率就是原始方波信号的2倍或4倍,换句话说就是,将编码器的分...

2021-06-29 13:54:41 16666 3

原创 编码器学习笔记

编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景, 包括工业控制、机器人、照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分...

2021-06-29 10:24:58 3723

原创 格雷码与二进制码的准换

格雷码(Graycode)是1880年由法国工程师Jean-Maurice-Emlle Baudot发明的一种编码,是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷...

2021-06-29 10:09:53 290

原创 十六进制字符串转为十六进制整数

#include <stdio.h>#include <stdlib.h> void StrToHex(const char lpSrcStr[], unsigned char lpRetBytes[], size_t *lpRetSize){ if (lpSrcStr != NULL && lpRetBytes != NULL && lpRetSize != NULL) { size_t uiLength = st.

2021-06-29 10:03:32 263

转载 qt 数据处理的过程常用的函数总结

在Qt开发中经常会使用到字节数组和16进制及ASCII码的转换。现分享如下:1.Qt字节数组和十六进制的转换QString QUIHelper::byteArrayToHexStr(const QByteArray &data){ QString temp = ""; QString hex = data.toHex(); for (int i = 0; i < hex.length(); i = i + 2) { temp += hex..

2021-06-10 14:24:10 845 1

转载 qt打包教程

https://blog.csdn.net/kangshuaibing/article/details/84951619

2021-05-15 16:46:15 127

原创 函数指针的妙用,可以快速实现底层与应用层的分开编写

#include <iostream>using namespace std;void fun1(void){ cout<<"fun1 is called"<<endl;}void fun2(void){ cout<<"fun2 is called"<<endl;}typedef struct{ void (*P1) (void); void (*p2) (void);}call;int mai.

2021-04-25 18:20:31 174

原创 leetcode---每日一题(买卖股票的最佳时机含手续费)

一、题目表示给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。二、解题思路本题采用的是动态规划来进行解题,动态规划的基本步骤:(1)确定状态:研究最优策略的最后一步,化为子问题...

2020-12-17 12:46:48 299

原创 字符串指定位置

一个小伙伴的笔试题,非常简单,题目是编写一个zjbmi_find函数,实现传入字符串的'z','i','b','m','i'字符依次排到最前面。如:输入:zjbmi is a zzleading brain-machine interface company in the world";输出:看了下就是字符串删除与替换,他交卷了,后面没有做,晚上抽空写了下,就暴力写下就行了。#include <iostream>#include <string>#in

2020-11-24 23:11:44 833

原创 C++ string 类函数总结(用的非常多,这里单独总结一下)

C++中string常用函数用法总结string(s小写)是C++标准库中的类,纯C中没有,使用时需要包含头文件#include<string>,注意不是<string.h>,下面记录一下string中比较常用的用法。string的定义及初始化string s1 = "hello"; //初始化字符串string s2 ("world"); //另一种初始化 string s3; //初始化字符串,空字符串string s4(5, 'a'); //s4由.

2020-11-24 22:22:56 472

原创 最长回文子串

思路:一个子串是否为回文串可以判断这个子串的第一个与最后一个是否相等+中间的子串是否为回文,中间的子串又可以分解为第一个与最后一个是否相等+中间的子串是否为回文,所以我们就找到了最优子结构,我们直接贴代码来分析#include <iostream>#include <string>#include <algorithm>#include <vector>#include <unordered_map>using namespace s

2020-11-24 22:13:12 95

原创 用最少数量的箭引爆气球

这是为什么?我们考虑任意一种最优的方法,对于其中的任意一支箭,我们都通过上面描述的方法,将这支箭的位置移动到它对应的「原本引爆的气球中最靠左的右边界位置」,那么这些原本引爆的气球仍然被引爆。这样一来,所有的气球仍然都会被引爆,并且每一支箭的射出位置都恰好位于某一个气球的右边界了。有了这样一个有用的断定,我们就可以快速得到一种最优的方法了。考虑所有气球中右边界位置最靠左的那一个,那么一定有一支箭的射出位置就是它的右边界(否则就没有箭可以将其引爆了)。当我们确定了一支箭之后,我们就可以将这支箭引...

2020-11-23 15:03:45 166

原创 剑指offer刷题

2.双指针思想替换空格class Solution {public: string replaceSpace(string s) { int count=0; int oldsize=s.size(); for(int i=0;i<oldsize;i++){ if(s[i]==' '){ count++; } } ...

2020-11-21 13:02:38 108

原创 LeetCode1——判断括号有效性

判断括号的有效性给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。解题思路当开始接触题目时,我们会不禁想到如果计算出左括号的数量,和右括号的数量,如果每种括号左右数量相同,会不会就是有效的括号了呢?事实上不是的,假如输入是 [{]},每种括号的左右数量分别相等,但不是有效的括号。这是因为结果还与括号的位置有关。仔细...

2020-11-16 23:52:41 410

原创 翻转字符串C与C++实现

//整个字符串的翻转char *strrev(const char *str){ char *temp=new char[strlen(str)]; for(int i=0;i<=strlen(str);i++){ temp[i]=str[strlen(str)-i-1]; } return temp;}std::string strrev6(std::string str){ for(int i=0;i<=str.size()/2;++i..

2020-11-16 21:33:10 107

原创 linux 日志打印(Linux多线)

Linux 多线程https://www.cnblogs.com/linxw-blog/p/10454988.html日志打印https://www.cnblogs.com/wanghao-boke/p/11150859.html

2020-11-09 17:58:47 252

原创 解决笔试中垃圾输入数组中的逗号过滤问题

#include <iostream>#include <string>#include "string.h"#include <vector>#include "stdio.h"#include <algorithm>using namespace std;void printvec(vector<int> arr){ for(auto x: arr){ cout<<x<<" ";.

2020-11-06 16:07:41 179

原创 数据库基础语言SQL学习笔记

1、SQL定义:SQL是结构化查询语言,可以把SQL分为两个部分:数据操作语言(DML)和数据定义语言(DDL)。SQL 是用于执行查询的语法,但是SQL语言也包含与更新、插入和删除记录的语法。DML:SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT INTO - 向数据库表中插入数据SQL 中最重要的 DDL 语句:CREATE DATABASE - 创建新数据库ALTER DATABASE -

2020-10-18 14:33:10 371 1

原创 由前序、中序 推出后续

#include<bits/stdc++.h>using namespace std;#define LarN 1000void printTree(char *pre,char *in,int length){ if(length<1)return; int idx=0; while(in[idx]!=pre[0])idx++; printTree(pre+1,in,idx); printTree(pre+idx+1,in+idx+1,le.

2020-10-05 21:19:39 224

原创 epoll 的深入浅出

https://blog.csdn.net/armlinuxww/article/details/92803381

2020-10-05 09:22:52 107

原创 leetcode306.累加数

1.为了处理大正数相加应该使用两字符串相加的程序,并且与和的字符串比较,避免转换为int消耗时间与溢出。2.dfs时的i,j,k分别代表第一个、第二个和第三个数字的起始下标,这样好处在于计算各个字符串时都很方便。3.第一个数字的起始下标一定是0,但是第二和第三个数字的起始下标不固定,需要通过两层循环枚举,在拿到起始数字之后,就可以dfs一直到最后验证是否整个字符串符合要求。4.这道题dfs的递归结束条件和普通稍有不同,要仔细思考。这里递归成功的标志是一直到字符串最后一个字符都满足要求,即是...

2020-09-26 23:28:14 101

原创 leetcode 347:计数组中前K个高频元素

#include <iostream>#include <vector>#include <unordered_map>#include <queue>#include <algorithm>using namespace std;vector<int> count(vector<int> nums,int k){ unordered_map<int,int> map;//key...

2020-09-26 23:11:52 102

转载 linux下的线程栈

https://blog.csdn.net/yangkuanqaz85988/article/details/52403726栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的数据结构。这种数据结构的特点是后入先出(LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行推入(push) 和弹出(pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论的并不是软件层面的栈,而是硬件层面的栈。...

2020-09-23 09:33:12 241

原创 实现字符串的每个字母的开头字母为大写

例子: hello world===>Hello Word(简单手撕)void test(char *p){ int k=0; do { if(k==0 && *p!='\0') { *(p)=toupper(*(p)); k=0; } else if(*p!=' ') k=1; else k=0; *p++; }while (*p=='\0');}..

2020-09-16 18:49:46 307

原创 华为手撕字符统计

如果统计的个数相同,则按照ASCII码由小到大排序输出。如果有其他字符,则对这些字符不用进行统计。实现以下接口:输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出清空目前的统计结果,重新统计调用者会保证:输入的字符串以‘\0’结尾。思路:第一步: 使用map<char, int> 统计每个字符的个数, map默认按字典排序第二步: 将map中的数据拷...

2020-09-15 15:16:38 171

原创 字符串编辑代价

给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。示例1输入"abc","adc",5,3,2输出2示例2输入"abc","adc",5,3,100输出8题目链接:https://www.nowcoder.com/questionTerminal/05fed41805ae4394ab6607d0d745c8e4?orderByHotValue=1&amp.

2020-09-13 23:53:27 725

原创 判断X年X月X日是这年的第几天

#include<iostream>using namespace std;int judge(int Year,int month,int Day){ int Monthday[13]={ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if(((Year%4==0 )&&(Year%100!=0))||(Year %400==0)){ //闰年29天 Monthday[2]++.

2020-09-08 09:27:47 236

原创 大数乘法

#include<iostream>#include<algorithm>#include<string>using namespace std; string add(string a,string b){ if(a.length()==0) return b; if(b.length()==0) return a; a.length()<b.length()?a.swap(b):a.length(); reverse(a.begin.

2020-09-07 23:42:43 85

原创  找出数组中倒数第二小的数

找出数组中倒数第二小的数#include <iostream>#include <vector>#include <algorithm>using namespace std;int findSecondSmall(vector<int> arr,int len){ if(arr.size()==0|| len<2) return 0xffffffff; int min=arr[0]; //第一小的 int second=ar.

2020-09-06 22:09:23 1977

原创 不使用库函数实现(字符串到整数)(整数到字符串)的实现(手撕)

/* ============================================================================ Name : mystoi.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style =====================================.

2020-09-06 15:16:57 527

转载 路由协议

1.路由控制的定义1.1.IP地址与路由控制  互联网是由路由器连接的网络组合而成的。为了能让数据包正确地到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方法”转发数据所进行的处理就叫做路由控制或路由  路由器根据路由控制表(Routing Table)转发数据包。它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此,这个过程中路由控制表的记录一定要正确无误。但凡出现错误,数据包就有可能无法到达目标。1.2.静态路由与动态路由  是谁又是怎样制

2020-09-06 11:21:39 442

原创 序列变换

题目描述给定一个长度为N的数列Ai。你可以对数列进行若干次操作,每次操作可以从数列中任选一个数,把它移动到数列的开头或者结尾。求最少经过多少次操作,可以把数列变成单调不减的。“单调不减”意味着数列中的任意一个数都不大于排在它后边的数。输入格式第一行是一个正整数N。第二行是N个正整数Ai。输出格式输出一个整数,表示最少需要的操作次数。输入输出样例输入 #1复制56 3 7 8 6输出 #1复制2说明/提示对于30%的数据,满足1≤n≤10。

2020-09-05 23:02:41 1581

原创 USB

1、USB的背景简介USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线, 是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC 领域的接口技术。 USB 接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、 Microsoft 等多家公司联合提出的。 USB 发展到现在已经有USB1.0/1.1/2.0/3.0等多个版本。目前用的最多的就是USB1.1 和 USB2.0,USB3....

2020-09-01 10:56:18 1000

原创 二叉求路径和等于目标值

1、剑指offer面试题25:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶节点所经过的结点形成一条路径。解题思路:从根结点开始,当每访问到一个结点,我们把该结点添加到路径上,并累加该结点的值。如果该结点为叶结点并且路径中结点值的和刚好等于输入的整数,则当前路径符合要求,我们把它打印出来。如果当前不是叶子结点,则继续访问它的子结点。当前结点访问结束后,递归函数将自动回到它的父结点。因此我们在函数退出之前要在路径上删除当前结点并减去当前结...

2020-08-28 09:27:04 650

原创 指定区间进行链表翻转

/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param head ListNode类 * @param m int整型 * @param n int整型 * @return ListNode类 */ ListNode* reverseBetween(Li.

2020-08-27 15:19:14 194

原创 找中位数

题目描述给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n个数[要求]时间复杂度为O(logN)O(logN),额外空间复杂度为O(1)O(1)示例1输入复制[1,2,3,4],[3,4,5,6]输出复制3说明总共有8个数,上中位数是第4小的数,所以返回3。#include <iostream>#incl

2020-08-27 10:42:37 403

原创 Qt界面没有输出

最近用QT写一个控制台程序,却不能将提示文本输出到屏幕。cout<<"abcd"正常运行但是屏幕上却没有输出。解决办法:在qt的工程文件(.pro文件)中加入以下代码:CONFIG += consoleQT -= gui

2020-08-26 18:43:11 1241

原创 子数组累加与累乘总结

1、数组中子数组的最大累乘积这个思路其实和计算数组的大于k的最长子数组长度一样的,先求的所有以a[i]为结尾的最大累乘积的子数组,a【i】从a[0]变化到a[N-1]在分析以a【i】为结尾的子数组时候,有三种情况 比如数组 3 4 5,a【i】为5,这时候,a[i]前面的子数组中的最大累乘积,12,乘以5,也就是60,所以这是max*a[i]如果是数组 -3 4 -5,a[i]为-5,这时候,-3*4,也就是-12,最小累乘积,反而可以让整体累乘达到最大 如果是数组,0....

2020-08-26 14:49:29 645

mobus协议在STM32单片机上实现

最近需要将几个信号采集模块通过总线串联起来,这样便于系统模块化。故将目光关注到了工业上经常使用的modbus协议。 modbus协议是一种一主多从的拓扑结构,主要是应用层软件协议,有关modbus的相关信息,可以自行google、百度。

2019-05-04

空空如也

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

TA关注的人

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