自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 电路原理和电工知识点 - 笔记1

1、W=FS(力 x 距离)=EqS(电场力 x 电荷量 x 距离)因U=ES,则W=FS=Uq。P=W/t=Uq/t=UI 注释: q/t(单位时间内通过导线的电荷量的多少,叫做电流的大小)2、1度电 = 1KWH 1000W的设备工作1小时用电1度 一度电几毛钱吧3、直流一般大写 P=UI、交流一般小写 p(t)=u(t)i(t)4、i=dq/dt 单位时间内电荷的变化量,求极限就是一点的电流值u=dw/dq 同样的电荷 电压越高做的功越多p=dw/dt =(dw/dg)x(dg/dt)

2020-09-29 08:01:04 436

翻译 离线语音识别芯片对比

离线语音识别芯片对比前言本文关注的重点是语音识别的硬件载体:语音识别芯片,特别是离线语音识别芯片。一、 语音识别技术的原理定义:语音识别技术(ASR Automatic SpeechRecognition),让智能设备听懂人类的语音。语音识别的工作流程,可以分为三大步骤:前端语音处理、模型训练、后端识别处理。1.前端处理前端处理,即将语音的模拟信号,转换成机器能读懂的数字信号,并做信号优化处理。前端处理关联硬件:麦克风、Codec/ADC、PDM\I2S、音频处理能力(NPU或DSP)以下是前端

2020-09-25 00:49:00 5988

翻译 python-爬虫

1、好的参考网址(1)https://www.cnblogs.com/h3zh1/p/12548946.html这个地址讲解的都是比较基础的东西,对理解爬虫很有帮助(2)https://www.52pojie.cn/forum.php?mod=viewthread&tid=1179932一个爬虫的经典例子不错(3)https://blog.csdn.net/pdstar/article/details/79383090讲解为什么需要模拟浏览器进行爬取网页(4)https://my.os

2020-09-23 00:53:10 450

翻译 Python-静态方法(@staticmethod)

@staticmethod 静态方法只是名义上归属类管理,但是不能使用类变量和实例变量,是类的工具包放在函数前(该函数不传入self或者cls),所以不能访问类属性和实例属性class cal: cal_name = '计算器' def __init__(self,x,y): self.x = x self.y = y @property #在cal_add函数前加上@property,使得该函数可直接调用,封装起来

2020-09-22 23:27:49 572

翻译 python-多线程-生产者消费者

‘’‘生产者和消费者’’’‘’’用python写一个多线程的生产者和消费者生产者x x>0,有东西,print(不生产) x=0,没东西,print(生产) for循环消费者x x=0,没东西,print(不消费) x>0,有东西,print(消费) for循环分别封装成class‘’’import threadingclass Producer(threading.Thread): def __init__(self,name): threading.

2020-09-22 20:39:33 198

翻译 Python多线程实现生产者消费者模式

什么是生产者消费者模式在软件开发的过程中,经常碰到这样的场景:某些模块负责生产数据,这些数据由其他模块来负责处理(此处的模块可能是:函数、线程、进程等)。产生数据的模块称为生产者,而处理数据的模块称为消费者。在生产者与消费者之间的缓冲区称之为仓库。生产者负责往仓库运输商品,而消费者负责从仓库里取出商品,这就构成了生产者消费者模式。结构图如下:为了大家容易理解,我们举一个寄信的例子。假设你要寄一封信,大致过程如下: 1、你把信写好——相当于生产者生产数据2、你把信放入邮箱——相当于生产者把数据放

2020-09-22 20:36:53 772

翻译 五、Python @property装饰器详解

既要保护类的封装特性,又要让开发者可以使用“对象.属性”的方式操作操作类属性,除了使用 property() 函数,Python 还提供了 @property 装饰器。通过 @property 装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。@property 的语法格式如下:@propertydef 方法名(self) 代码块例如,定义一个矩形类,并定义用 @property 修饰的方法操作类中的 area 私有属性,代码如下:class Rect:

2020-09-22 17:23:33 195

翻译 四、如何建立一个完美的 Python 项目

当开始一个新的 Python 项目时,大家很容易一头扎进去就开始编码。其实花一点时间选择优秀的库,将为以后的开发节省大量时间,并带来更快乐的编码体验。在理想世界中,所有开发人员的关系是相互依赖和关联的(协作开发),代码要有完美的格式、没有低级的错误、并且测试覆盖了所有代码。另外,所有这些将在每次提交时都可以得到保证。(代码风格统一、类型检测、测试覆盖率高、自动检测)在本文中,我将介绍如何建立一个可以做到这些点的项目。您可以按照步骤操作,也可以直接跳到 使用 cookiecutter 生成项目 部分(老手

2020-09-22 13:03:15 571 3

原创 三、python类定义的讲解

python是怎么定义类的,看了下面的文章大家就会了,不用多说,开始学习。一、类定义:class <类名>: <语句>类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象类的私有属性:  __private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs类的方法  在类地内部,使用def关

2020-09-22 12:32:37 133

原创 二、Python之列表(list)、元组(tuple)、字典(dict)和集合(set)详解

一、什么是序列,Python序列所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数据的一个个内存空间,每个房间所特有的房间号就相当于索引值。也就是说,通过房间号(索引)我们可以找到这家旅店(序列)中的每个房间(内存空间)。在 Python 中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、

2020-09-22 12:24:00 2852

原创 一、python开发环境搭建

一、下载工具(1)Python 3.8.5下载 https://www.python.org/downloads/(2)pycharm下载 https://www.jetbrains.com/pycharm/download/#section=windows二、安装(1)Python 默认安装就好,安装完,运行 WIN+R 输入CMD,在控制台 输入 Python 会有如下截图,表示安装成功(2)pyCharm安装步骤以后步骤默认安装就好,最后安装完成可能要重启一下电脑...

2020-09-21 20:20:50 90

原创 五、WIN10模拟DOS环境之8086汇编实战

1、开发环境的搭建(1)下载工具DOSBox(DOS模拟器):https://www.dosbox.com/download.php?main=1masm(汇编图形化环境):https://www.jb51.net/softs/709793.html(2)安装(1)DOSBox下载完成后默认安装就可以(2)把masm包解压,例如如下放在D盘(3)双击修改DOSBox安装目录下的DOSBox 0.74-3 Options.bat文件做如下修改(4)打开DOSBox,输入一下画红线的命令

2020-09-21 13:25:53 1662

原创 一、LINUX这一块该怎么弄?

1、综述Linux系统和Windows系统一样都是已经相当成熟的系统,相比而言Linux在工业和嵌入式产品应用上更多一些,再加上Linux系统开源,开发者们可以定制自己的开发方案,所以如果你是做产品的,Linux系统是不错的选择。2、我们怎么学习Linux我大概总结了一下,可以从以下3步走:(1)Linux系统内核学习,初步掌握Linux环境的搭建和简单命令的使用(2)Linux应用编程,可以写一个小的测试程序,实现自己想要的功能。(3)Linux驱动的了解,这一部分需要更多的知识,才能搞定。

2020-09-20 14:52:37 73

原创 四、汇编实战二

1、理解有无符号?mov al,80h add al,80hmov al,7dh add al,0bh下面分析一下:首先对于计算机来说10000001B只是一串二进制数,你可以把它看做是有符号数,也可以看做是无符号数,如果你把它看做有符号的,最高位就是符号位。al=80h+80h=100h al只能保存8个位,高位舍去,结果为0如看做无符号的话真实结果100h超出了8字节,产生进位,进位标志CF位置1如看做有符号的话结果应是-128+(-128)=-256超出一个字节能表示的

2020-09-20 03:26:05 355

翻译 三、汇编实战

1、开发环境搭建我们用VS2013进行汇编测试,步骤截图如下:(1)创建一个空项目(2)下一步 右键选择生成依赖项-》生成自定义(3)下一步 选择 masm(4)下一步 右键打开工程属性(5)选择子系统为控制台和设置程序入口点6、创建文件7、运行代码如下.386 ;指令集.model flat,stdcall ;存储模式,平坦内存模式flat 语言类型为stdcall 从右向左压栈option casemap:none ;大小写敏感 includelib msvcr

2020-09-20 01:11:00 281

原创 二、汇编之寄存器

我们想用汇编语言控制我们想控制的外设,就必须通过控制器发送控制命令,那这写控制命令存放在哪里,就放在CPU内部组成单元之一,寄存器里面。1、CPU内部一般由4部分组成(1)运算器:进行信息的处理(2)寄存器进行信息的存储(3)控制器控制各种器件进行工作(4)内部总线:进行内部器件间的数据交互 2、汇编指令举例2、物理地址的理解 物理地址顾名思义就是硬件内存单元的地址,CPU通过地址总线访问物理地址。物理地址(以8086CPU为例)=段地址*16+偏移地址为了更好理解物理地址我们举个例子..

2020-09-18 14:59:18 199

原创 电阻、电容、电感该怎么理解?

电阻、电容、电感、是我们研究电路不可缺少的组成部分,说简单也简单,首先我们要根本理解概念,才能为以后学习电路设计打下基础,因为千里之行,始于足下。什么是电阻?一种导体有阻碍电流通过电路的特性,这种导体我们叫做电阻,其实电阻无处不在, 一般认为干燥的皮肤在低电压下具有相当高的电阻,约10万欧。电阻的公式如下影响电阻的特性因素如下1、长度:当材料和横截面积相同时,导体的长度越长,电阻越大 [6] 。2、横截面积:当材料和长度相同时,导体的横截面积越小,电阻越大 [6] 。3、材料:当长度和横

2020-09-17 20:41:30 1658

原创 一、汇编学习必懂基础

1、汇编语言的产生早期我们编程是用机器可以执行的机器码编程的,但是这样太复杂,于是人们就想办法,于是汇编语言就产生了。汇编工作过程如下图2、汇编语言的组成汇编语言由(1)汇编指令:机器码的助记符,有对应的机器码(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行(3)其他符号:+,-,*,/等,由编译器识别,没有对应的机器码汇编语言的核心是汇编指令,它绝对了汇编语言的特性,就像我们每一种构架的CPU都有自己特殊的汇编指令集。3、什么是指令和数据指令和数据在底层即内存上没有什么区别

2020-09-17 13:08:46 371

翻译 嵌入式CPU的体系架构

当我们谈及嵌入式处理器的体系架构时,一般都是想到Intel的X86架构和ARM公司的ARM架构。X86架构和ARM架构最大的不同点就是使用的指令集不同,前者使用的CISC指令集,后者使用的是RISC指令集,还有一点就是X86架构使用的是冯诺依曼结构,ARM架构既使用冯诺依曼结构,也使用哈佛结构(已经成了一种趋势)。何为架构?这两个字看起来很简单,不就是“骨架+结构”,但是个人觉得并不好理解。百度上把架构分为逻辑架构,物理架构和系统架构。对于处理器,当起发展到一定程度时,这种物理架构不会有很大的变化。以CPU

2020-09-17 10:27:32 1521

原创 七、内存管理之循环buf

loopbuf.htypedef struct { unsigned char stat;#define LOOPBUF_STA_ALLOCED 0x01 // 内存是否已经分配#define LOOPBUF_STA_ENDWRIT 0x02 // 写入是否完成 unsigned int size; char *dat; unsigned int

2020-09-16 22:21:57 412

原创 七、不同等级的打印功能实现

我们做项目时不同的打印信息可以帮助我们定位代码bug,也可以使代码逻辑清晰#include <stdio.h>#include <tchar.h>#include <stdlib.h>#include < stdarg.h>#define INFO_OUTPUT 3#define WARNING_OUTPUT 2#define DEBUG_OUTPUT 1#define ERROR_OUTPUT 0#defi

2020-09-16 15:10:13 267

原创 六、什么是指针,数组,枚举,结构体,共用体,字符串,位域

1、什么是指针?在C语言里面,指针就是就是另一个变量的地址,指针指向这个变量,这个变量可以是函数变量或者整形变量等等。2、什么是数组?数组就是存储一些数据的仓库,只不过这个仓库会定义一定的类型,例如int a[3];这就定义了一个包含三个整型数值的数组。3、什么是枚举?枚举在我们写程序的时候,可以作为常量,作为一些判断的条件,例如enum{int a,int b,int c,int d};这时 a=0;b=1;c=2;d=3;4、什么是结构体?结构体的出现是帮助我们更好的规划我们的代码,让代

2020-09-15 23:54:24 276

原创 五、函数的封装 回调函数 - C语言

什么是回调函数?这个我们如果没有了解过会很陌生,简单点说,回调函数就是我们定义的一个函数,只是我们在其他地方调用这个函数的时候,它的执行顺序不是进入回调函数,执行完再返回主掉函数,而是和主调函数相当于同时执行相关功能,当主调函数和回调函数握手后,他们就分开了。#include <stdio.h>#include <tchar.h>#include <stdlib.h>//第一种形式void(*pfun)(int data);void myfun(int da

2020-09-15 09:41:06 544

原创 四、基本语法之switch case - C语言

这一讲我们讲解,通过键盘输入数字1,2,或者3,然后我们SWITCH选择打印出来,是对C语言基本语法的练习。#include <stdio.h>#include <tchar.h>#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[]){ int a = 0; printf("键盘输入变量赋值给a\r\n"); scanf("%d",&a); switch (a) { case 1:

2020-09-15 09:05:33 164

原创 变量的赋值,运算符的实现

#include <stdio.h>#include <tchar.h>#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[]){ //定义变量 int a = 3; int b = 4; int c = a + b; printf("a = %d,b = %d,c = %d\r\n",a,b,c);//打印 int d =+ a; printf("d = %d\r\n",d);//打印 flo

2020-09-14 11:12:58 154

原创 打印十进,十六进制数,打印字符串,进制相互转换

#include <stdio.h>#include <tchar.h>#include <stdlib.h>char *str = "hello word";int _tmain(int argc, _TCHAR* argv[]){ char str_buf[128]; int a = 153;//定义一个变量 printf("a = %d\r\n",a);//打印十进制形式 printf("a = %02x\r\n",a);//打印十六进制形式 p

2020-09-14 10:31:46 471

原创 一、定义一个变量为什么要映射为机器码

一、定义一个变量怎么映射位计算机识别的机器码1、变量为什么需要映射为机器码?因为我的计算机只能识别0和1,我们需要把我们定义的变量和最终写的代码,通过编译器编译成计算机识别的编码方式。2、平时我们写代码的变量怎么变成机器码的呢?我们平时写的代码,例如C语言,我们定义了一个变量,int a=23;这个23用10进制表示时我们读23,用十六进制读时就是0X17,用二进制时就是10111,所以最终23=0X17=10111,只是表达编码方式不同而已,但是最终都要转换成计算机识别的二进制形式。...

2020-09-14 09:26:16 221

CSV文件读写 C++语言

CSV文件读写 C++语言

2022-04-15

空空如也

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

TA关注的人

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