自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python编程用法——Python模块

Python自带了一些有用的模块,在安装Python会自动安装,也可以通过pip的形式安装第三方的优秀模块。自定义包Python中,模块的集合为包包组成$ lsPyClass/ Pymain.py$ ls PyClass/EnumClass.py TestClass.py __init__.py 模块为一个文件夹包含的内部Python文件,用__init__.py为该模块的初始化文件Pymain.py#模块包含from PyClass import EnumClass

2021-10-17 19:41:48 244

原创 Python编程用法——Python类

Python类内部函数第一个参数永远是self,与C++ this类似,指向自身。__init__函数是构造函数,通过传参初始化。类成员函数前面加__为私有函数,外部不能改变其值。类内的函数不能重载class CTest(object): def __init__(self,name = "Python",num = 3):`在这里插入代码片` self.__name = name self.__num = num def show(self):

2021-10-17 19:09:08 202

原创 Python编程用法——Python函数

函数定义Python通过def定义函数,函数主体以Tab键或四个空格开始,不一定紧挨上一行。但需要严格遵从格式,若不是以Tab或四个空格开始,运行会报错def TestFunc(): print("Test func")执行结果Test func获取函数名获取函数名有两种方法,函数内获取的方法需要sys模块执行结果import sysdef TestFunc(): print("Test func:",sys._getframe().f_code.co_name)

2021-08-22 11:34:11 242

原创 Python编程用法——dict

Python中,有类似C++的map功能,但Python中map被作为了一个高阶函数的关键字。dict通过键值来访问对应的数据值。同一个键值被赋值多次,最新的值会覆盖掉原先的值。赋值初始化后通过数组下标或函数get访问键值内容。数组下标访问不能越界,否则会运行报错若通过get函数获取,则返回NonemapArray = {"ZX_ Python": 3.14, 'A': "Python str", 23:"Python Num"}print("mapArray =",mapArray)pri

2021-08-22 10:55:42 204

原创 Python编程用法——list

在Python中数据有类似于数组的功能,在IDE中,数组的具体定义为listlist用[]包含数值,也可以用list()包含数值 intarray = [1,3,5] strarray = list(["ZX","Test","Python"]) index = 1 print("int = ",intarray) print("int[%d] = %d" % (index,intarray[index])) print("str = ",strarra

2021-08-22 10:41:41 365

原创 Python编程用法——基本语法

打印函数print打印函数作为Python的输出类型,可以观察变量以及代码在各阶段的运行情况。print("ZX Python")打印函数内字符串可以用逗号隔开,在打印时就将逗号识别成空格print("Python","ZX","Test")执行结果Python ZX Test打印换行打印换行可以用’’'将字符串两边括起来使用,也可以通过\n换行print('''ZXTestPython''')print("n Test \nPython")执行结果ZXTestPy

2021-08-08 11:13:40 444

原创 Python编程用法——安装运行环境

进入Python官网:https://www.python.org/下载最新的安装包,本次下的是最新的Python 3.7.1,Linux的选择下载源码。Windows安装安装完毕后在命令提示符下可以查看到Python版本号,Windows和Linux执行的命令一样,如下图所示Linux安装Linux安装的命令步骤下载Python源码,执行以下命令./configure --prefix=/usr/local/Python3makesudo make installLinux若安装不

2021-08-08 10:36:48 128

原创 Cmake构建工程设计——Cmake工程框架

Cmake工程的嵌套关系编译脚本build.sh在顶层建立build文件夹,里面放入编译脚本#!/bin/bashCMAKE_TYPE="MinGW Makefiles"PROJECT_BUILD_TYPE="Release"PROJRCT_INSTALL=""CMAKE_VS=0clean(){ cd ../ if [ -d "project_cache/" ];then cd ./project_cache make clean cd - fi rm -rf

2021-07-11 22:07:57 695

原创 Python解析xml

SAX(simple API for XML)事件驱动,解析xml,该方法的核心是标签式解析,即逐行解析对应的标签来进行解析,优点是解析速度快,由事件进行驱动,分为标签起始事件,内容事件,标签结束事件。读取时需要构建对应解析的事件类。用来快速读取xml信息。DOM对象驱动,解析xml,是以将xml作为对象进行解析,与ASX相比解析速度慢,DOM解析时需要创建树,在内存中对树的解析操作来解析xml,可用来修改xml。ElementTree将xml以一种树形展开式进行解析,类似于C/C++树的形式,比DOM

2021-07-11 21:51:07 396 2

原创 Cmake构建工程设计——Cmake工程安装

Cmake提供了install关键字,用于对应make install功能。安装的文件包括可执行文件、静态库、动态库、文件、目录、脚本文件。install(TARGETS <target>... [...])install({FILES | PROGRAMS} <file>... [...])install(DIRECTORY <dir>... [...])install(SCRIPT <file> [...])install(CODE <co

2021-06-05 20:13:06 110

原创 Cmake构建工程设计——Cmake程序编译

编译库编译库按照以下步骤依次进行设置库编译出来后存放的路径,该配置可放在*.cmake中set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/target/libs)设置库的名称:set编译库的名称设置为test_lib,保存到变量SOURCE_LIB中set(SOURCE_LIB test_lib)添加库源码:aux_source_directory将编译库所需的源码保存到变量CODE_SOURCE中aux_source_directory(${

2021-06-05 19:54:27 385

原创 Cmake构建工程设计——Cmake工程资源加载

加载文件夹:add_subdirectory添加CMakeLists.txt层级下的子文件夹,cmake执行时会自动进入该文件夹。添加时要确保子文件夹也要有CMakeLists.txt文件。父目录的变量可以传递给子级目录。添加该CMakeLists.txt文件目录下的src文件夹add_subdirectory(src)添加头文件include_directories该命令默认的作用域为该层级目录以及下属子目录。由于父目录的变量可以传递给子级目录,头文件路径添加也遵循该规律,但子级目录的变量

2021-06-05 19:03:34 771

原创 Cmake构建工程设计——Cmake编写规则

Cmake的命令不区分打下写,例如message,set等命令;但Cmake的变量区分大小写。为统一风格,本次的Cmake命令全部采用小写,变量全部采用大写加下划线组合。Cmake变量Cmake变量可用关键字set赋值,可以将变量赋值为开关,数字,字符串,列表形式,在之后的Cmake中会多次用到。option为开关选项,通常作编译开关。示例代码option(OPEN_TEST "open test" ON)set(FALSE_TEST FALSE)set(NUMBER_TEST 3.14)

2021-06-05 12:20:56 896

原创 Cmake构建工程设计——Cmake环境搭建

Cmake为工程生成跨平台的工程构建工程,例如生成不同平台的Makefile或project文件,相比于Makefile,提供简单的语法功能。Cmake安装进入官网下载Cmake版本:https://cmake.org/Windows确保电脑安装有make和gcc。本次所使用的版本:C:\Users\zx_work>make -vGNU Make 3.82.90Built for i686-pc-mingw32Copyright (C) 1988-2012 Free Software

2021-06-05 11:59:00 689

原创 C&C++搭建环境——6 微软IDE:Visual Studio Code

下载安装Visual Studio Code以下简称VSCode。安装VSCode前提最后是下载并好git和MinGW,VSCode支持git插件官网: https://code.visualstudio.com/如下图所示安装时选择的选择如下图所示安装后重启电脑生效。显示中文界面Ctrl+Shift+P快捷键,输入“Configure Display Language”,选中该设置并回车。如下图6.所示。若没有中文,则选择“Install additional languages

2020-06-17 19:51:36 667 1

原创 C++模板排序算法

交换函数 template<typename SORTVALUE> void commonswap(SORTVALUE &exchange1, SORTVALUE &exchange2) { SORTVALUE value(exchange2); exchange2 = exchange1; exchange1 = value; }冒泡排序 ...

2020-02-05 11:38:00 344

原创 Linux 标准ioctl接口

版本颁布日期修订章节0.12015.08.17撰写草稿0.22015.12.11整理内容0.32016.03.06整理文档,排序1.02016.04.17验证程序,正式发布特征输出输入的控制命令一般是用来写非标准接口功能可以实现的功能,编写标准接口不能实现的功能。例:一个eeprom驱动,需要设置地址,这个功能来说,系统上调用的接...

2019-11-16 11:40:23 657

原创 CAN帧解析

版本颁布日期修订章节0.12018.06.02撰写草稿0.22018.06.16整理CAN帧解析0.32018.06.24整理CAN帧数据类型格式0.42018.07.07完善CAN帧解析0.52018.07.22补充CAN帧类型说明0.62018.08.05整理CAN帧仲裁0.72018.09.10整理CAN处...

2019-10-19 10:32:55 5231

原创 Linux字符设备驱动——Linux2.6标准字符设备驱动模型

文章目录Linux2.6标准字符设备特征Linux2.6标准字符设备定义字符设备驱动结构体头文件设备号分配核心结构函数静态设备号注册函数动态设备号注册函数设备号注销函数(释放设备号函数)核心结构初始化函数注册函数注销函数编写Linux2.6字符设备模型步骤第一步:变量定义第二步到第八步在入口函数完成第二步:分配一个核心结构第三步:申请设备号第四步:初始化核心结构第五步:注册核心结构第六步和第七步增...

2019-07-10 20:59:20 488

原创 Linux字符设备驱动——经典标准字符模型

文章目录特征头文件注册函数注销函数设备号,设备驱动节点需要手动创建经典标准字符驱动模型驱动程序zx_chrdev_led.c源代码应用程序app.c源代码实例代码测试测试次设备号是否是全部占用经典标准字符模型,即为Linux2.6之前的早期经典标准字符模型。特征没有使用一个核心的结构体,把需要的信息进行封装安装驱动后,不会在/dev/目录下创建设备节点,需要使用mknod创建。一个主设...

2019-06-30 21:28:39 416 1

原创 Linux字符设备驱动——杂项设备驱动模型

文章目录杂项设备驱动模型杂项设备驱动的特征头文件核心结构杂项设备注册函数杂项设备驱动示例代码杂项设备的驱动编写方法杂项设备驱动模型示例驱动程序zx_misc_led.c源代码应用程序app.c源代码实例代码测试杂项设备驱动模型杂项设备驱动的特征1、 主设备号固定不变,为102、 注册后会自动在/dev目录下生成设备文件3、 使用一个核心结构struct miscdevive封装起来杂项...

2019-06-16 20:28:04 647

原创 Linux字符设备驱动模型

版本颁布日期修订章节0.1015.08.13撰写草稿0.2015.12.07整合字符型设备驱动0.3015.12.07整理文档,尚未验证驱动源码0.4016.02.28补充信息,整理结构关系0.5016.03.13验证驱动程序,正式发布文章目录Linux设备驱动一些概念操作一个文件需要的步骤:(大象放冰箱)编写一个特定设备的驱...

2019-06-16 16:53:13 775

原创 Linux内核驱动模块添加并编译(Makefile)

文章目录添加所需编译的目录添加驱动源代码编写Makefile在菜单中选中需要编译的选项编译自定义Linux内核菜单配置好Linux内核菜单后就要在菜单下添加内容。根据用户的选择配置内核菜单的各种选项,Linux在编译的时候就就会根据选择好的模块源代码进行编译并整合到Image中,从而实现Linux内核的裁剪。添加所需编译的目录本次添加的自定义菜单在drivers目录下,要编译aamenute...

2019-06-08 20:57:54 6995 1

原创 Linux内核驱动菜单(Kconfig)编写方法

文章目录KconfigKconfig结构层次结构菜单选项属性文件名菜单属性输入提示"prompt" ["if" ]默认值"default" ["if" ]帮助说明数据范围"range" ["if" ]依赖关系if depends on反向依赖关系 select综合:自定义添加菜单添加自定义目录编写Kconfig建立子目录Kconfig编译菜单说明文档gedit Documentati...

2019-06-08 20:57:41 3219

原创 JavaScript编程用法——类的定义

文章目录函数定义class定义构造器constructor原型prototype继承原型继承:prototype关键字继承:extends关键字继承:call函数定义由于JavaScript中,函数本身也可以是一个变量的特性,在var内定义成一个类。成员变量需要用this引用;默认值定义借助或运算确定。源码function FuncClass(num,str){ this.index...

2019-06-02 21:06:57 395

原创 JavaScript编程用法——JavaScript函数

文章目录函数定义函数传参与返回值获取函数参数:arguments获取函数定义外参数:rest函数嵌套嵌套声明嵌套函数this变量数组方法map方法reduce方法sort方法使用自定义比较器比较箭头函数关键字:call和apply在JavaScript中,函数本身也可以是一个变量,可以被赋值使用,函数定义的关键字,function,函数有显示函数和匿名函数。调用匿名函数不加括号就是直接赋值整个...

2018-12-08 20:42:36 205

原创 JavaScript编程用法——JavaScript语法

文章目录判断符号===变量变量定义获取变量定义符号:typeof数组定义数组长度:length数组搜索:indexOf数组堆栈与出栈:push,pop元素连接:join字符串定义字符串连接大小写转换:toUpperCase、toLowerCase结构体定义结构体操作日期容器Set容器Map容器解构赋值定义类赋值异常处理判断符号===JavaScript的判断符号“=”既比较类型也比较数值,然而...

2018-10-28 10:01:47 327

原创 JavaScript编程用法——JavaScript运行环境

文章目录#文件版本说明版本 |颁布日期 |修订章节 |作者--------| —0.1|2018.05.01| 撰写草稿 |钟鑫0.2|2018.05.05| 添加js变量定义 |钟鑫0.3|2018.05.05| 添加js编译环境 |钟鑫0.4|2018.05.11| 添加js函数 |钟鑫0.5|2018.05.14| 添加解构赋值 |钟鑫0.6|201...

2018-10-07 20:17:22 4817

原创 C++分析——特殊容器STL使用

排序容器sort使用默认排序比较使用自定义比较器比较乱序容器random_shuffle排序容器sort排序容器sort,将数组的元素从大到小或从小到达排序; 乱序容器random_shuffle,将数组的元素的顺序随机打乱,需要配合随机因子。头文件:#include使用默认排序比较 std::vector&lt;int&gt; Value...

2018-04-07 10:57:33 194

原创 C++分析——泛型模板

泛型编程的简单示例模板类:双向循环链表应用定义模板头文件定义双向循环链表节点定义链表模板迭代器基类定义链表模板实现方法这类是C++的特点,但在实际使用中不经常使用,泛型是指数据类型泛指,特点是面向对象,屏蔽掉参数特征,泛型编程依靠模板实现泛型编程的简单示例template &lt;typename T&gt;T func_add(T a,T b...

2018-04-07 10:49:59 279

原创 Google_Protobuf协议——Protobuf发送接收数据类型

发送的数据为单个数据类型发送数据接收数据发送的数据为数组类型发送数据接收数据发送数据为消息体发送数据接收数据发送数据为消息体数组发送数据接收数据发送数据为引用外部proto消息体发送数据接收数据测试源码: https://github.com/zxworkSW/google_Protobuf_Test.git发送的数据为单个数据类型proto消息体定义message T

2017-12-31 21:11:21 5422

原创 Google_Protobuf协议——protobuf代码中的通讯

序列化和反序列化计算序列化后的长度代码实现定义发送与接收基类以及函数序列化到数组数组反序列化序列化到字符串字符串反序列化在类google::protobuf::Message中有protobuf通讯的函数,将信息序列化和反序列化,在由proto文件生成的.cc和.h文件中,消息体生成由命名空间匡制,继承google::protobuf::Message的类。 在生成的test.pb.

2017-12-31 20:47:34 4382

原创 Google_Protobuf协议——Protobuf语法

语法协议规则syntax命名空间修饰package包含其他proto文件import注释消息体message字段修饰编号规则protobuf的语法围绕着后缀为.proto的文件进行构建。语法协议规则:syntax目前的语法协议规则最新支持proto3 在文件描述为yntax = "proto3";每个.proto文件必须阐明支持的语法协议规则。 不同的规则要求的语法不一样,生成的.c

2017-12-31 20:39:26 6810

原创 Google_Protobuf协议——Protobuf工具使用

编写Protobuf文件编译Protobuf文件工程源码加入ProtobufLinuxWindowsDebugRelease头文件包含命名空间工具安装好后,就需要编写protobuf文件,让protobuf工具编译成源码,然后将源码放入工程文件中使用。protobuf文件的后缀为.proto编写Protobuf文件测试文件test.proto//确定支持的protobuf语法syn

2017-12-31 20:19:05 4533

原创 Google_Protobuf协议——Protobuf安装编译

文件版本说明下载代码linux下的编译安装windows下的编译安装Cmake编译编译Release版本编译Debug版本Visual Studio 2017编译编译Release版本编译Debug版本编译后的Protobuf工具头文件包含linuxwindows库文件包含Linuxwindows版本编译文件版本说明 版本 颁布日期 修订章节 作者

2017-12-30 10:50:00 6243

原创 MySQL数据库使用——MySQL在C/C++的API接口

MySQL C API移植移植MySQL头文件Makefile工程Visual Studio工程移植MySQL库文件Makefile工程Visual Studio工程添加MySQL示例MySQL C API头文件包含登录MySQLmysql_initmysql_real_connect操作MySQLmysql_query关闭MySQLmysql_close读取MySQL数据

2017-12-28 21:07:29 28514 4

原创 MySQL数据库使用——MySQL数据索引

关联表创建公共表关联表表一对一的关联表一对多的关联表多对多的关联每张表都有对应的主键“id”对这个表中的数据进行唯一定位,那表与表之间的关联就可以通过对应的主键id去展开这条信息对应另外一张表的信息。 数据库的表与表之间应该是相互关联的。关联表创建公共表班级表:common_classmysql> select * from common_class;+----------+-----

2017-12-26 21:28:08 226

原创 MySQL数据库使用——MySQL值操作

数据关联查询数据SELECT查询关键字筛选查询内容筛选修改数据UPDATE插入数据INSERT删除数据DELETEMySQL函数数据加密函数不可逆函数秘钥函数时间函数获取时间时间格式转换在创建完数据库——表——字段之后,数据库框架基本搭建完毕,此时就进入最重要的一步,为数据库添加实际的各种数据。数据关联每一条数据都有这个表的唯一键值关联。id就是一个键值。mysql> se

2017-12-20 21:17:43 511

原创 MySQL数据库使用——MySQL字段管理

添加字段ADD COLUMN查看字段DESC修改字段类型CHANGE COLUMN修改字段名删除字段 DROP COLUMN字段数据类型定义数值类型字符串类型时间类型表中的键值添加时间戳字段就是在创建表的时候所添加的内容,比如id,name,password等关键信息,查看表中的字段在表中已经描述。 SQL命令:SHOW COLUMNS FROM tablename;mysq

2017-12-17 20:13:45 741

原创 MySQL数据库使用——MySQL表管理

创建表CREATE TABLE查看表SHOW TABLES查看表字段SHOW COLUMNS FROM查询所有数据表SHOW TABES修改表名字RENAME删除表DROP TABLE管理之前先进入对应的数据库进行操作mysql> use zx_mysql;Database changedmysql>MySQL中,各个表代表着项目的子模块,比如用户表,用户状态表,公共信息表等,表的创

2017-12-17 19:31:35 311

git版本管理软件

提供使用git的详细步骤

2017-08-23

STM32移植FreeRTOS

FreeRTOSv9.0.0移植到STM32上的一个点灯任务。

2016-06-26

空空如也

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

TA关注的人

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