自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (7)
  • 收藏
  • 关注

原创 对递归的理解

  阅读递归最容易的方法不是纠缠于它的执行过程,而是相信递归函数会顺利完成它的任务。如果你的每个步骤正确无误,你的限制条件设置正确,并且每次调用之后更接近限制条件,递归函数总是能够正确的完成任务。  感觉递归内部也隐含这一种哲学思想。因为按照一般的思维,只有过程正确,才能确保结果正确。但是在递归完成之前,过程还没有经过检验,那么结果就应该是不确定的。但是,只要我们相信最后结果是正确的,并用这个结果修正过程,那么最终结果它就是正确的。打个不恰当的比喻,两个思想就类似于唯物主义和唯心主义。用严谨的过程最后得到

2021-04-24 12:16:10 18

原创 C++使用注意事项

vector<string> v 中加入一个空字符串,v的大小也会增加1。 vector<string> v; //v.size() == 0 string word; v.push_back(word); //v.size() == 1,不过该元素为空。也就是说,虽然为空,但确实存在。

2021-03-24 23:10:40 24

原创 【驱动】Linux下字符设备驱动开发流程

确定主设备号实现对应的open/read/write等函数,填入file_operations结构体定义自己的file_operations结构体把file_operations结构体告诉内核:注册驱动程序谁来注册驱动程序啊?得有一个入口函数:安装驱动程序时,就会去调用这个入口函数有入口函数就应该有出口函数:卸载驱动程序时,就会去调用这个出口函数其他完善:提供设备信息,自动创建设备节点#include <linux/module.h>#include <linux/f.

2021-03-19 22:11:01 17

原创 STL中常用数据结构方法以及常用算法

algorithmswap();max();min();find();unique();reverse();sort();stable_sort();to_string()isalpha();islower();isupper();isdigit();isalnum();tolower();toupper();String ss.length()s.push_back();s.pop_back();s.begin() – s.end()s.empty();s.s

2021-03-16 11:13:48 57

原创 TCP三次握手、发送数据、四次挥手

本地利用curl www.baidu.cm 80从百度服务器请求一次数据。然后,利用tcpdump -nn -i eth0 port 80抓取此次请求的数据包。其中,172.21.0.2为本地IP,220.181.38.150为百度服务器IP。#三次握手13:43:59.022921 IP 172.21.0.2.49584 > 220.181.38.150.80: Flags [S], seq 1369607997, win 64240, options [mss 1460,sackOK,TS

2021-03-07 13:55:53 37

原创 双指针套路总结

  对于数组的问题,常用的方法是双指针,首先为什么要用双指针,实质就是为了把已处理和未处理的数组元素区分开,也就是说通过两个指针,把数组分成3个部分。  在遇到有序数组时,第一应该想到的就是双指针。具体实现上包括:快、慢指针;对撞指针;滑动窗口;...

2021-02-28 19:53:00 32

原创 git基础操作--基本概念、常用指令

工作流程以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库工作区暂存区本地仓库远程仓库...

2021-01-21 09:27:08 34

原创 Shell脚本中获取uci配置文件参数

/lib/function.sh函数其中定义的主要函数功能如下:

2021-01-20 14:35:48 178

原创 代码记录

工作中碰到的代码,在此记录。下班后再详细学习。该脚本调用之前,kill掉之前运行的ps |grep /sbin/temp_check|grep -v grep|awk '{print $1}'|grep -v $$|xargs kill -9

2021-01-05 10:24:54 22

原创 make menuconfig分析与总结

233333333333333333333333

2020-12-25 14:50:53 50

原创 openWrt移植(2)——iMX6UL适配与编译

目录openwrt源码支持的芯片iMX6UL编译openwrt源码支持的芯片iMX6UL编译

2020-12-21 23:26:52 84

原创 openWrt移植(1)——开发环境搭建与源代码下载

目录开发环境搭建源代码下载openwrt源码简介、分类源码下载将源码克隆到本地修改 openwrt 源码目录的 feeds.conf.default 文件中的镜像源提前下载依赖源码库到放到 openwrt 源码目录中更新软件包编译开发环境搭建开发环境选用Ubuntu。环境搭建与配置后续补充源代码下载openwrt源码简介、分类源码下载将源码克隆到本地https://gitee.com/harvey520/openwrt.git 每天自动从官方源拉取更新一次,不会存在更新不及时问题git cl

2020-12-21 23:17:07 99

原创 UCI提供给shell和lua的配置接口

1. config_get用来读取一个config值。命令格式如下:config_get var_name settion_name option_name <default>var_name: 用来存放config值的变量。settion_name: 就是section 的名字option_name: 就是option的名字config_set用来配置config值,命令格式如下:config_set section_name option_name var_name各

2020-12-16 15:07:54 73

原创 Makefile学习2——隐含规则

隐含规则通配符$@所有的目标文件。$@ 表示 该单元中的所列举的所有的目标文件$^所有的依赖文件。$(TAR):$(OBJ) $(CC) $^ -o $@$^ 表示 该单元中的所列举的所有的依赖文件

2020-12-13 22:29:51 16

原创 Makefile学习1——基本格式、变量

语法基本格式 目标(target)... : 依赖(prerequiries) <tab\> 命令(commad)  如果“依赖文件”比“目标文件”更加新,那么执行“命令”来重新生成“目标文件”。命令被执行的 2 个条件:依赖文件比目标文件新,或是 目标文件还没生成。   必须以 Tab 键缩进命令行,不能以空格键缩进2. 注释以#注释# #表示注释hello.i:hello.c gcc -E hello.c -o hello.ihello.S:hello.i

2020-12-13 15:31:08 69 1

原创 模块编写与调用

模块的编写lua允许我们编写自定义模块以便后面调用,在编写模块之前我们先认识2个知识点1.lua语言中数组,模块其实都是table表格。2.在之前的lua基本语法里我们知道函数是可以赋值给变量的构建的函数添加到模块中,好几种方法:先构建函数,再添加到模块中;直接构建模块函数方法。这种方法下有各种实现方法。--局部表封装模块local M = {}--属性M.date = "20201212"M.author = "FengZhendong"--方法--先构建函数,再添加到模

2020-12-12 18:42:52 44

原创 IEEE 802.11系列标准

802.11b802.11a802.11g802.11n802.11ac802.11ax802.11i   2004年6月,802.11i成为标准,其规范了一组经过改良的安全机制,目的是提供坚固而安全的网络连接。使用802.11i所定义的、经改良的身份认证与私密协议,就可称之为固安网络连接(robust security network associations,RSNAs)。设备可通过硬件或软件方式支持802.11i。802.11k802.11v...

2020-11-20 19:12:46 329

原创 利用sed、grep、awk对JSON进行状态获取、写入

sed -i "s/\"pbc\": 0/\"pbc\": 1/" /etc/data/wps_status_info.json sed -i '/currentTime/d' /etc/data/wps_status_info.json sed -i '/pbc/a "currentTime": 0' /etc/data/wps_status_info.json sed -i 's/\"currentTime\"/ \"currentT...

2020-11-11 19:15:19 165

原创 【WiFi SON】wifi son和mesh概述

地方都是

2020-11-11 11:31:09 370

原创 【WiFi SON】Band Steering –频谱导航

当一个 ap 同时支持 2.4G 和 5G 双频时,当距离近时,优先连接 5G,尽可能使用 11ax 协议,使得空间利用率更高,当距离远时,由于 2.4G 的连接距离比较远,可以使客户端迁移到 2.4G,保证无线可以连接。如果 5G 频率上的客户端很多,可以将部分客户端迁移到 2.4G 上,以保证合理利用频谱资源,主要取决于 CCA 的繁忙程度。实现频谱导航功能的AP的两个频段必须使用相同的SSID和安全策略。1、优先接入5G频段2、双频之间负载均衡...

2020-11-11 11:27:09 685 7

原创 [NFS]NFS服务器搭建和配置

一、服务器端1.1 安装NFS服务#apt会自动安装nfs-common、rpcbind等13个软件包sudo apt install nfs-kernel-server在没有安装nfs相关软件包的机器上,直接执行nfsstat和rpcinfo命令时,会给出安装提示在没有安装nfs相关软件包的机器上,直接执行exportfs和showmount命令时,会给出的安装提示在NFS服务器上使用apt命令,安装nfs-kernel-server软件包,系统提示同时安装nfs-common,rpci

2020-11-08 17:03:41 51

原创 【工具】dnsmasq

2020-11-04 15:41:53 16

原创 【工具】hexdump

选项Usage: hexdump [-bcCdefnosvx] [FILE]...Display FILEs (or stdin) in a user specified format -b 1-byte octal display -c 1-byte character display -d 2-byte decimal display -o

2020-11-04 15:41:03 19

原创 802.11控制帧

802.11控制帧在802.11帧格式中,前两个字节为Frame Control字段,其中前两位为协议版本,因为802.11协议簇目前只有一个版本,所以这两位一直为00,接下来两位为帧类型,目前有三个值,分别是:00表示管理帧;01表示控制帧和10表示数据帧。作用:控制帧只包含报头信息,按照最低基本速率传输,以确保每个网络内的设备都更够接收到控制帧。其具有清除信道、请求信道,并对单播帧进行确认,协助数据帧与管理帧传送的功能。控制帧主要在协助数据帧的传递。它们可用来监督无线介质的访问(但非介质本身),以

2020-10-27 18:33:25 415

原创 【shell】Linux bash中自带的字符串处理工具

Linux bash中自带的字符串处理工具:1、字符串切片2、基于模式提取字符串3、查找替换4、查找删除5、大小写替换6、变量赋值abc="abcdefg"ABC="ABCDEFG"1、字符串切片echo "${abc:1:2}" #偏移1个字符,输出长度为2个字符的子川---bc2、基于模式提取字符串3、查找替换4、查找删除5、大小写替换echo "${abc^^}" #转换成大写---ABCDEFGecho "${ABC,,}" #转换成小写---abcdefg

2020-10-11 23:01:38 43

原创 【shell】 中双引号的作用

#! /bin/bashread str1read str2if [ -z "$str1" ]#if [ -z $str1 ]then echo "$str1 is void" echo "-z:void return value is 1" >>log.txtelse echo "$str1 is not void" echo "-z:not void return value is 0" >>log.txtfiif [ -n "$str1" ]#i

2020-08-23 23:54:29 162

原创 c文件编译过程

预处理(Pre-Processing) --> 编译(Compiling) --> 汇编(Assembing) --> 链接(Linking)这里以helloworld.c为例 1 #include <stdio.h> 2 #define LEN 111 3 4 int main() 5 { 6 int a = LEN; 7 printf("hello world\n"); 8 return 0

2020-07-26 12:51:40 86

原创 有理数均值

本题要求编写程序,计算N个有理数的平均值。输入格式:输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。输出格式:在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:41/2 1/6 3/6 -5/10输出样例1:1/6输入样例2:24/3 2/3输出样例2:1原始链接:http

2020-07-02 23:19:26 194

原创 通讯录的录入与显示

通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。输入格式:输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;性别用M表示“男”、F表示“女”;固话和手机均为不超过15位的连续数字,前面有可能出现+。在通讯录记录输入完成后,最后一行给出正整数K,并且随后

2020-06-22 21:58:29 97

原创 说反话-加强版

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样例:Hello World Here I Come输出样例:Come I Here World Hello原地址链接:https://pintia.cn/

2020-06-15 21:23:22 136

原创 字符串的冒泡排序

我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。输出格式:输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。输入样例:6 2bestcateastafreeday输出样例:bestacatdayeastfree——

2020-06-05 21:01:10 387

原创 浅拷贝、深拷贝

浅拷贝——2个程序单元(例如2个函数)是通过拷贝他们所共享的数据的指针来工作,真正要访问的数据并没有被拷贝。深拷贝——被访问的数据被拷贝了,在每个单元中都有自己的一份,对目标数据的操作相互不受影响。/* * 深拷贝,变量默认拷贝的是对象本身 */ int a = 3; int b = a; //b=3 a = 5; //a=5,b=3上边代码中,a的地址为0x22fe4c,b的地址为0x22fe48.且都为int变量,内部直接存储数值,所以改变a之后,对b没有影响。 int c =

2020-06-03 09:02:16 56

原创 父对象、子对象以及直接赋值、浅拷贝(copy)、深拷贝(deepcopy)

python中数据存储和C中区别:Python中:a=2b=aa=3该过程中的内存储存方式为:1、先再内存中开栈存储2这个数据的空间2、a指向数据为2的内存空间地址3、b=a 此时b指向2的内存空间的地址4、a=3 内存中开栈存储3这个数据的空间5、此时a=3中,a重新指向数据为3的内存地址总结:Python是动态语言,变量只是对象的引用,不同于C中将值赋给变量(j将值存放到变量代表的内存空间中),动态语言中,变量只是对象的引用,即对象本身有自己的内存空间,变量只是指向了该内存空间。

2020-06-02 21:56:48 531

原创 C语言Paho MQTT库

下载地址:Paho https://github.com/eclipse/paho.mqtt.embedded-cPaho嵌入式C工程提供了三个子项目:MQTTPacket:提供MQTT数据包的序列化与反序列化,以及部分辅助函数。MQTTClient:封装MQTTPacket生成的高级别C++客户端程序。MQTTClient-C:封装MQTTPacket生成的高级别C客户端程序。...

2020-05-23 21:06:31 369

原创 预定义宏__FILE__、__LINE__、__func__等

  C语言中,FILE、LINE、__func__常用于logout,打trace,debug调试。这些是预置在编译器中的宏,并不包含于任何头文知件,所以直接调用即可,不需要做任何其它操作。__FILE__指示当前文件名,表示为字符串常量。__LINE__指示运行当前文件的行数,表示为十进制整数常量。__func__指示当前函数名,表示为字符串常量。#include <stdio.h>void test(void){ printf("%s--%d--%s\n",__func__,

2020-05-18 20:54:29 79

原创 STM32+ESP8266+MQTT连接阿里云(1)

ESP8266连接阿里云的流程发送“+++” 目的是让ESP8266退出透传;AT+RESTORE 让模块恢复出厂设置;AT 判断模块的好坏及工作状态,正常就会回复OK;ATE0 关闭回显,这个没什么好说的;AT+CWMODE_CUR=1 设置为station模式;.AT+CWJAP_CUR=“ssid”,“password” 连接热点,需要根据自己的热点更改;AT+CIPSTART=“TCP”,“域名”,端口 连接TCP;AT+CIPMODE=1 设置传输模式为透传

2020-05-16 17:04:01 1860

原创 【算法】约瑟夫环问题及解法

约瑟夫环问题描述知识拆解解法https://blog.csdn.net/weixin_38214171/article/details/80352921

2020-05-10 14:34:15 160

原创 IP编址与子网编码

IP地址:32比特(IPv4)编号标识主机、路由器的接口。同时根据高、低比特位将IP地址分为网络号(NetID)和主机号(HostID)。IP子网是具有像相同网络号的设备接口,不跨越路由器就可以彼此物理联通的接口。根据网络号所占比特位数的不同,可以将IP地址分为A、B、C、D、E五类。  A类地址:定义高8位为网络号,最高1位固定为0,占用所有IP地址的50%。最高8位除首位外的其余7...

2020-05-04 10:35:43 306

原创 确保数据可靠传输的基本原理

  首先对数据传输过程中的可靠性进行定义,即不错、不丢、不乱。即考虑传输信道对数据包可能带来的影响——位错误、丢包。注意:在通信协议的分析中,状态机和传输示意图的两种方法需要掌握,能方便、直观地分析数据包在发送方与接收方的流动。1、底层信号可能只可能发生位错误位错误检测——利用校验和位错误恢复——确认机制(Acknowledgements,ACK)+重传机制。  确认机制即接收方显式地...

2020-04-27 22:23:56 267

原创 传输层服务与协议

如上图,传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制。

2020-04-25 16:25:06 103

Keil.STM32L4xx_DFP.2.0.0.pack

在KEIL中的stm32l4支持包,版本号为2.0.0,最新的版本好可以去官网去下载

2019-10-24

make.pdf make官方手册

make官方手册,英文版,不过挺容易看懂的,没那么晦涩。初学linux、makefile可以直接看这个,条例清晰。

2020-08-22

刘豹版现代控制理论PPT完整版、课后习题答案

现代控制理论经典教材刘豹版的PPT和课后习题答案。本书是智能控制的基础课。

2019-01-29

STM32 PMSM 官方代码库

ST官方电机库文件。里面包括电机的坐标变换、SVPWM、PI等。适合电机开发的人员。

2018-09-28

STM32foc ACIM

交流电机库文件。里面包括电机的矢量变换等。适合电机开发的人员。 (AC motors library file. Which includes motor vector transformation. For motor development staff.)

2018-09-28

STM32 PMSM FOC 中文手册

STM32 PMSM foc 中文文档。 刚入门小伙伴的学习利器。

2018-09-28

Debugging Tools for Windows.zip

解决在windows 环境下Qt Creator 调试器未设置的问题 Debugging Tools for Windows

2019-07-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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