自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RedValkyrie的博客

"十年饮冰,难凉热血"

  • 博客(55)
  • 收藏
  • 关注

原创 HIP4082电机驱动电路详解

一、原理图这个是我在14届小白四轮组里使用到的驱动原理图,以下只列出以下部分记录一下。二、化简电路前提,我们先明确以下知识点,再来把无关器件省略掉,分析主干电路。MOS管导通的实质是对GS结电容充电,在上图所示的原理图我在G级串联一个电阻是为了限制充电速度,防止充电过快产生震荡。栅极电阻一般串联一个10欧左右的电阻,GS级之间一般并联一个10K的电阻用来关断期间结电容的放电。与MO...

2020-12-23 23:02:35 21147 11

原创 多继承、多态、类属性以及类方法

一、多继承多继承定义:子类有多个父类,并且具有他们的特征class Base(object): def test(self): print("----Base---")class A(Base): def test1(self): print("----test1")class B(Base): def test2(self): print("----test2")class C(A, B): passc

2020-07-16 01:07:17 265

原创 Python里的argparse模块浅析

背景:计算一个圆柱体的体积一、不使用argparse模块实现,在命令行运行程序import mathdef calculate_volume(radius, height): vol = (math.pi) * (radius ** 2) * height return volif __name__ == '__main__': print(calculate_volume(2, 4))输出结果如下:二、使用argparse来通过命令行输入参数import ma

2020-07-15 20:40:17 358

原创 类和对象(一)

一、类:类等价于模板,根据模板创建出来的东西叫做对象。类和对象的关系如下,根据模型创造出来的实物叫做对象,对象看得见摸的着,类就是一个模型:区分类和对象:类(Class)由3个部分组成类的名称:类名类的属性:一组数据类的方法:允许对进行操作的方法(行为)1.1 创建一个类:class Cat: #方法 def eat(self): print("猫吃鱼.....") def drink(self): print("猫在喝可乐....

2020-07-14 19:52:00 305

原创 STM32F103ZET6使用软件仿真时跳不出SystemInit函数

问题描述:使用MDK进行软件设计时没有使用ST官方的模板而是手动建立的工程,使用ST官方提供的3.5版本固件库。编译完全通过,在使用软件仿真时出现问题,表现为程序无法跳转到main入口,直接在SystemInit()函数就无法执行,调试窗口出现如标题所示的错误信息:error 65: access violation at 0x40021000 : no ‘read’ permission如下图所示,途中红圈分别表示了代码执行到的位置及相应的错误信息网络上查找解决方案同时对比ST提供的3.5版本固件

2020-06-13 23:16:57 1968

原创 常用存储器

一、存储器的种类根据掉电数据是否会丢失分为易失性存储器和非易失性存储器:易失性存储器:掉电数据会丢失。如XRAM、SRAM等。虽然掉电数据会丢失,当时它读写速度相对较快。非易失性存储器:掉电数据不会丢失,如SPI FLASH、EEPROM等。虽然掉电数据不会丢失,当时它读写速度相对较慢。二、RAM存储器2.1 DRAM的存储单元结构DRAM以电容的电荷来表示数据,这一个小框图表示一个数据位的存储,存储数据的时候,如果电容Cs充满了电,那么这个位表示存储了1,如果电容放电完了,表示该数据位存储

2020-06-10 22:32:00 1792

原创 STM32F10xx串口通信

一、通信方式相关1.1 并行通信1.2 串行通信串行通信的通信方式:常见的串行通信接口:STM32的串口通信接口USART:通用异步收发器UART:通用同步异步收发器STM32F10x大容量系列芯片,包含3个USART(支持异步也支持同步)和2个UART(只支持异步)二、UART 异步通信方式引脚连接方法:RXD:数据输入引脚,数据接收TXD:数据输出引脚,数据发送。PC机里CPU也是含有发送引脚和接收引脚的,他们通过主板引出已经被转化为RS232电平,然后通过

2020-06-09 23:40:37 1833

原创 STM32F10xx的端口复用和重映射

一、什么是端口复用可以参考《STM32中文参考手册V1.0》- 第8章通用和复用功能 IO(GPIO和AFIO)STM32有很多内置外设, 这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。通过查阅《STM32中文参考手册V1.0》的表格,可以看到外设的GPIO模式配置如下:所以端口复用通过软件的配置过程如下:二、什么是端口重映射每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端

2020-06-08 13:01:11 550

原创 STM32F10xx的Systick定时器

一、Systick定时器的基本概念Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,记到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。SysTick定时器被捆绑在N

2020-06-08 10:32:01 439

原创 STM32F10xx时钟系统

一、关于GPIO库函数以下为GPIO固件库里比较重要的库函数:

2020-06-07 22:08:59 578

原创 STM32F1的GPIO工作原理

一、GPIO基本结构和工作方式1)I/O端口位的基本结构如下图所示:2)GPIO的工作方式:四种输入模式:输入浮空模式,经过下图所示①、②、③、④通道,同时Vdd 和 Vss 所接的开关是断开的。输入上拉,与输入浮空的区别就是上拉电阻的开关闭合了。输入下拉,与浮空输入的区别就是下拉电阻的开关闭合了。模拟输入,此处一般用外部的模拟量通过I/O端口输入,这里是以电压的形式输入,而不是电平的形式。通过模拟输入转化为数字量进入单片机四种输出模式:开漏输出,输出控制电路之前来自于输出

2020-06-07 14:38:46 680

原创 关于ISP和IAP下载的原理

一、关于STM32的启动方式ISP:In System Programing,在系统中编程。在STM32F10xxx里有三种启动方式:以ISP方式下载程序时需要把STM32的BOOT0引脚置1、BOOT1引脚置0,即从系统存储区(System Memory)启动。为什么设置从System Memory启动就可以使用串口来下载我们的程序呢?那是因为在芯片出厂前ST官方已经把一段自举程序(BootLoader程序),也就是下面要说的ISP程序,固化到System Memory这一块存储区。对于STM3

2020-06-07 09:18:27 1168

原创 STM32F1xx的IO口电压兼容问题以及如何选择对应外设的IO口

一、如何判断STM32的IO是否兼容5V       STM32的IO,绝大部分都兼容5V,至于哪些兼容5V,需要看STM32芯片的数据手册里的引脚描述表,凡是带FT标志的IO口,都是兼容5V的。对于正点原子的战舰开发板为例,看IO是否兼容5V,有一个小技巧:从原理图上看,凡是带有ADC字样的IO,都不兼容5V,反之都兼容5V。如下图所示,其他部分也是二、 如何选择外设的IO口对于正点原子的开发板原理图,都是提供了详细的IO功能标注,即每个IO的复

2020-06-06 22:14:58 3710

原创 51单片机的片内RAM和片外RAM的区别

STC89C52 共有 512 字节的 RAM,是用来保存数据的,比如我们定义的变量都是直接存在 RAM 里边的。但是单片机的这 512 字节的 RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。51 单片机的 RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内 RAM 地址从 0x00H~0x7F 共 128 个字节,而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即 RAM 是从 0x

2020-05-16 19:27:44 13420 1

原创 USB、Mini-USB、Micro-USB接口的引脚定义

一、标准USBUSB是一种常用的PC接口,只有4根线(两根电源,两根信号)USB接口的引脚定义(一般看公口,梯形对着自己时,A型USB公口从右数起,B型的则是左起顺时针转个圈)二、Mini USBMini-USB接口的引脚定义:看公口,梯形对着自己,A、B型的Mini-USB公口都从左数起Mini USB接口的ID脚只有在OTG功能(就是在没有电脑的情况下,两个USB设备间的数据传送。例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备间的USB口,将拍出的相片立即打印出来)中才

2020-05-11 22:03:06 20512

原创 AD软件系统属性配置

一、系统参数设置< 1 > Navigation栏上图方框里的内容可以按照自己的喜好选择性配置,这里的作用是原理图和PCB进行交互的时候使用的。点击原理图可以快速定位PCB里的元器件,反过来也行。需要设置。新版本的会有上图所示交叉选择模式配置,也是在PCB和原理图交互时使用的,一般都悬上图所示选项即可。一般我不会勾选上图红框内的缩放,看个人喜好。< 2 > De...

2020-04-22 21:07:56 3302

原创 拼板操作以及Gerber文件的导出

一、DRC的检查及丝印的调整< 1 > DRC的检查前期为了满足各项设计要求,通常会设置很多约束规则,当一个PCB设计完成之后,通常要进行DRC。DRC就是检查设计是否满足所设置的规则。一个完整的PCB设计必须经过各项电气规则检查,常见的检查包括间距、开路及短路检查,更加严格的还有差分对、阻抗线等检查。通常设置如下两个地方:< 2 > 丝印的调整针对后期元件装配...

2020-04-20 23:28:05 6119 1

原创 异形焊盘、集成库的创建

一、标准焊盘Altium里可以直接放置而且能在右侧修改属性的叫做标准焊盘标准焊盘包含钢网(Paste Mask Expansion),它属于Top Paste层钢网默认和铜面大小一样。标准焊盘还包含阻焊层(Soleder Mask Expansion)所以焊盘由三个元素组成:铜面、钢网层、阻焊层二、异形焊盘< 1 > 由线条组成的异形焊盘比如2.4GHz板载天线...

2020-04-20 11:05:29 1669 3

原创 电阻、电容、电感选型

一、电阻相关电阻的参数主要有:精度、温度系数和功率三个1、贴片电阻的命名规则:贴片电阻上的数字一般为3位或4位,最后一位为10的幂,最后一位之前的数为乘数。如下图所示表示 110∗101=1100Ω=1.1kΩ110*10^1 = 1100Ω = 1.1kΩ110∗101=1100Ω=1.1kΩ如果电阻上面写了R,就把R当做小数点。如下图所示 2R2=2.2Ω,24R3=2.2Ω,R...

2020-04-18 17:45:25 2962

原创 P12 深度学习技巧和优化方法

本文会顺带解决CNN部分的两个问题:1、max pooling架构中用到的max无法微分,那在gradient descent的时候该如何处理?2、L1 的Regression到底是什么东西本文的主要思路:针对training set和testing set上的performance分别提出针对性的解决方法1、在training set上准确率不高:new activation fun...

2020-04-13 11:47:42 724

原创 P11 卷积神经网络(二)

人们常常会说,deep learning就是一个黑盒子,你learn完以后根本就不知道它得到了什么,所以会有很多人不喜欢这种方法,这篇文章就讲述了三个问题:What does CNN do?Why CNN?How to design CNN?What does CNN learn?what is intelligent如果今天有一个方法,它可以让你轻易地理解为什么这个方法会下这样的判断和...

2020-04-12 21:11:54 229

原创 P10 卷积神经网络(一)

CNN常常被用在影像处理上,它的theory base就是三个property,和两个架构convolution 架构:针对property 1和property 2max pooling架构:针对property 3Why CNN for Image?CNN V.s. DNN我们当然可以用一般的neural network来做影像处理,不一定要用CNN,比如说,你想要做图像的分类,...

2020-04-11 22:28:50 274

原创 P9 手写数字识别

Why Keras你可能会问,为什么不学TensorFlow呢?明明tensorflow才是目前最流行的machine learning库之一啊。其实,它并没有那么好用,tensorflow和另外一个功能相近的toolkit theano,它们是非常flexible的,你甚至可以把它想成是一个微分器,它完全可以做deep learning以外的事情,因为它的作用就是帮你算微分,拿到微分之后呢,你...

2020-04-11 15:16:14 178

原创 P8 Backpropagation

Backpropagation(反向传播),就是告诉我们用gradient descent来train一个neural network的时候该怎么做,它只是求微分的一种方法,而不是一种新的算法Gradient DescentGradient Descent的使用方法,跟前面讲到的linear Regression或者是Logistic Regression是一模一样的,唯一的区别就在于当它...

2020-04-11 14:29:40 179

原创 嵌入式基础概念(一)

一、ARM的几个版本号误区< 1 > 几个误区ARM7个ARMv7不是一回事Cortex-A9比Cortex-A7更先出来事实上是A8先出来的,A8出来后才出来的A9,A9后面同时出来的A15和A7。A8是单核的,A9是单核四核的,A9的性能和功耗是取了折中的。之后出来的A15相对于A9性能更强,但是功耗变高,发热量变大;A7相对于A9是性能降低了,但是功耗变低了。&lt...

2020-04-10 23:22:11 1348

原创 P7 深度学习简介

Ups and downs of Deep Learning1958:Perceptron(linear model),感知机的提出和Logistic Regression类似,只是少了sigmoid的部分1969:Perceptron has limitation,from MIT1980s:Multi-layer Perceptron,多层感知机和今天的DNN很像19...

2020-04-09 16:07:43 301

原创 P6 Logistic Regression

Review在classification这一章节,我们讨论了如何通过样本点的均值uuu和协方差Σ\SigmaΣ来计算P(C1),P(C2),P(x∣C1),P(x∣C2)P(C_1),P(C_2),P(x|C_1),P(x|C_2)P(C1​),P(C2​),P(x∣C1​),P(x∣C2​),进而利用P(C1∣x)=P(C1)P(x∣C1)P(C1)P(x∣C1)+P(C2)P(x∣C2)P...

2020-04-09 13:59:25 219

原创 P5 概率生成模型

Classification概念描述分类问题是找一个function,它的input是一个object,它的输出是这个object属于哪一个class还是以宝可梦为例,已知宝可梦有18种属性,现在要解决的分类问题就是做一个宝可梦种类的分类器,我们要找一个function,这个function的input是某一只宝可梦,它的output就是这只宝可梦属于这18类别中的哪一个type输入数值...

2020-04-09 09:12:13 383

原创 P4 Gradient Descent

一、回顾前面预测宝可梦cp值的例子里,已经初步介绍了Gradient Descent的用法:In step 3,我们需要解决下面的优化问题:θ∗=arg⁡min⁡θL(θ)\theta^{*}=\arg \underset{\theta}{\min} L(\theta) \quadθ∗=argθmin​L(θ)LLL : Loss function(损失函数)θ:\theta:θ: P...

2020-04-08 19:42:14 268

原创 P3 探究误差的来源

Error的来源从上节课测试集数据来看,AverageErrorAverage ErrorAverageError 随着模型复杂增加呈指数上升趋势。更复杂的模型并不能给测试集带来更好的效果,而这些 ErrorErrorError 的主要有两个来源,分别是 biasbiasbiasbiasbiasbias 和 variancevariancevariance 。然而 biasbiasbiasb...

2020-04-08 14:58:32 195

原创 P2 回归问题

一、回归定义和应用例子1.1 回归定义1.2 应用举例二、模型步骤Step1:模型假设,对于线性回归问题,就是一个线性函数,然后选择模型框架(线性模型)Step2:模型评估,构建一个损失函数,通过损失函数来衡量众多模型的好坏Step3:模型优化,通过梯度下降算法筛选出最好的参数,也就是能让损失函数达到最小的参数值,此时对应的函数是最合适的函数三、本次回归问题的分析3.1 基...

2020-04-07 18:13:37 210

原创 P1 机器学习介绍

一、几个基本问题机器学习问题中:形象的解释就是你就写段程序,然后让机器人变得了很聪明,他就能够有学习的能力。接下来,你就像教一个婴儿、教一个小孩一样的教他,你并不是写程序让他做到这件事,你是写程序让它具有学习的能力。机器学习的最终目标:寻找一个function,要让机器具有一个能力,这种能力是根据你提供给他的资料,它去寻找出我们要寻找的function。还有很多关键问题都可以想成是我们就是需...

2020-04-07 14:24:25 474

原创 C enhance Day(五)

一. 回顾二. 结构体2.1 基本概念结构体内存四区图:

2020-04-07 10:37:20 111

原创 Alpha 第一期记录

一. 关于编译器安装了Ubuntu后默认是自带gcc编译器的,通过gcc -v命令我们可以查看一下gcc的版本,需要关注的是红色框框部分,说明Ubuntu自带的gcc编译器是专门针对编译X86架构的芯片的程序,也就是一般的电脑上的C语言代码开发板是ARM架构的芯片,我们如果要编译在ARM芯片上的程序,用到的是针对ARM芯片的交叉编译器,这里的交叉表示在X86架构的电脑上编译ARM芯片上运行的...

2020-04-06 20:55:56 214

原创 C enhance Day(四)

一. 回顾4)三种二级指针内存模型图

2020-04-06 12:56:42 120

原创 C enhance Day(三)

一. 回顾< 1 > 指针强化部分< 2 > 字符串部分二. const 的使用三. 二级指针3.1 二级指针做参数输出特性< 1 > 指针做函数参数,值传递int getMem(char *p){ p = (char *)malloc(sizeof(char *) * 100); if(p ...

2020-04-05 22:50:49 124

原创 C enhance Day(二)

一. 指针强化

2020-04-05 13:29:11 112

原创 Vim 编辑器命令

一. 文件非正常关闭如果以非正常的方式关闭了一个文件,下一次再用vi打开该文件的时候,会出现以下情况:查看当前路径下的文件,产生了一个swp文件,这是因为你在非正常关闭文件的时候,系统会把你已经写入的但是没有保存的信息保存在这个swp的交换文件里,下次再打开该文件的时候就会报上面的文件提示:这个时候可以按D,直接删除交换文件,下次一就能够正常打开,参考第一章图片的最下面的命令提示。此时当...

2020-04-04 21:55:31 187

原创 Linux 常用命令笔记

一. 认识Linux1. 什么是操作系统(OS)向下能够直接控制硬件,向上能够支持软件的运行操作系统是一套软件代码,这套代码比较特殊可以直接控制硬件Linux内核是用C语言写的如果想要研究Linux内核的话,去研究最早的版本。所有的发行版本都是基于Linux的内核基础上添加外包装就成为了一个新的操作系统,所以最核心的还是Linux内核。此处链接到内核源码网址二. 目录结构1. W...

2020-04-04 20:42:50 656

原创 C enhance Day(一)

1. 如何看懂带算法的程序流程每个语句的功能试数调试模仿改不看代码写1.1 选择排序选择排序的原理:a[0]先和a[1]进行比较,如果a[0]大于a[1],就交换两个的位置,此时的a[0]是相对较小的那个,然后继续a[0]和a[2]进行比较,如果a[0]大于a[2]就交换两个的位置,依次类推,进行一轮比较之后,最小的数就到了a[0]的位置。然后进行第二轮,将a[1]与a[2]进...

2020-04-04 14:41:01 120

空空如也

空空如也

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

TA关注的人

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