- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode—数组与字符串—编程笔记
出于找工作的需要,最近一周开始刷题了,经同学推荐发现了一个比较好的刷题网站LeetCode,最近把其中的数组与字符串栏的题目刷完了,这里进行一个总结,以将自己的劳动沉淀成自己的知识体系。说明:由于自己水平有限,只是对C语言比较熟练,因此刷题的过程中全部采用的是C语言来实现。说明:对于数组和字符串的基本理论知识不再做讲解,本篇文章主要记录在进行数组、字符串、二维数组的处理时常用的算法和思路。总共有以下几个题目(以下所有题目来源都来源于LeetCode,这里统一对题目转载进行说明,后续在出现题目时就不再进
2020-08-10 13:36:46
896
原创 (随笔)在STM32中的UCOS操作系统下,进行FLASH代替EEPROM的操作,需要注意的问题
在进行项目的时候,由于所需要存储的参数值较少,出于成本的考虑,我们往往会将FLASH代替EEPROM来进行参数的存储。那么如何实现该操作?首先,STM32芯片是提供了能够进行FLASH操作的固件库的,例如stm32f10x_flash.c,那么我们在使用时就可以直接调用STM32相关的库来实现读写的功能。需要注意以下几个问题:1.注意需要根据自己的芯片型号更改存放参数的FLASH的地址,最好把需要保存的参数存在靠后的页内,因为FLASH里面烧录的都是程序代码和参数变量。如果在写的时候覆盖了程序代码或参
2020-08-07 22:36:42
1133
原创 FPGA之全数字锁相环(DPLL)
1. 数字锁相环的基本原理和组成1.1 锁相环(PLL)的简介锁相环最开始并不是用在数字电路中,而是模拟短路中。对于模拟电路中的锁相环,大家可以参考这篇文章稍微看一下,数字和模拟只是实现的方法不同,但是原理、步骤还是共同的。关于模拟PLL。可以参考一片文章:http://www.sohu.com/a/190569594_464086首先在学习数字锁相环之前,我们应该先了解什么是锁相环?锁相...
2020-06-19 19:43:55
37270
26
原创 操作系统学习笔记(1)
在进行嵌入式开发的时候,尤其是在进行较大规模的嵌入式开发时,对于原来的裸机开发已经难以支撑一个较大项目的嵌入式开发,因此这里需要采用操作系统的方式,通过操作系统来实现各个任务的实现。因此这里对于操作系统,进行一个学习。通过博客来记录一些学习笔记。操作系统内核:操作系统五花八门,但是其内核的实现基本相似。一般来说,操作系统需要实现进程管理、存储管理、文件管理、设备管理这几个功能。而这些功能的...
2020-06-18 23:24:14
383
原创 MATLAB实现粒子群算法的进阶讲解(多维+约束条件)
我们在之前的博客中,对粒子群算法的实现进行了讲解,主要讲解了粒子群算法的产生,实现步骤,并且通过代码来实现了当输入变量为n维向量时的粒子群算法。许多网友对之前的代码有些疑惑,并且提到了几个问题:1,对于之前的代码,觉得有些看不懂?2,如果输入变量不再是n维向量,而是n*n维的矩阵,甚至n*n*n...维的矩阵,该如何编写代码?3,如果目标函数存在约束条件,该如何编写代码?本节就基于之前博客的内容,出现的问题,以及这两天我的一些学习,来对上述问题进行一个解答。
2019-11-12 19:09:38
57846
86
原创 LM317的调压电阻的选择
LM317是电子设计中常用的三端线性稳压芯片,可以实现1.5A的电流输出,和1.2到37V的电压调节范围。我们在进行LM317电路设计的时候,经常需要通过选择合理的调压电阻R1R_1R1和R2R_2R2来实现不同的输出电压。如下图所示为常用的调压电路。那么这里的R1R_1R1和R2R_2R2的选择,一个是选择两个电阻之间的比值,另一个是选择R1R_1R1的阻值。两个电阻的取值取决...
2019-09-23 17:35:09
7475
原创 电子技术背后的数学本质【3】(放大器电路噪声的计算和去除)
接着上一篇的文章继续对电子技术进行探讨,上一篇把基本的数学知识介绍了一下,重点关注电工电路中的系统的频率响应,可以看做是开环系统,而没有涉及到闭环系统。而本篇我们就讨论在电子设计中的闭环系统,尤其是关于系统稳定性的知识,虽然稳定性问题我们之前有所提及,这里我们对其进行更深入的认知,并探讨如何保证系统的稳定性,避免自激振荡的出现。然后以放大器作为具体的设计实例,探讨如何进行放大器的设计。文章目录1...
2019-09-03 14:47:02
1441
1
原创 电子技术背后的数学本质【2】(反馈电路的分析和运算放大器)
接着上一篇的文章继续对电子技术进行探讨,上一篇把基本的数学知识介绍了一下,重点关注电工电路中的系统的频率响应,可以看做是开环系统,而没有涉及到闭环系统。而本篇我们就讨论在电子设计中的闭环系统,尤其是关于系统稳定性的知识,虽然稳定性问题我们之前有所提及,这里我们对其进行更深入的认知,并探讨如何保证系统的稳定性,避免自激振荡的出现。然后以放大器作为具体的设计实例,探讨如何进行放大器的设计。文章目录1...
2019-08-30 16:59:00
2651
原创 电子技术背后的数学本质【1】(以及常见电路的数学本质分析)
最近在做一些项目的时候,需要在高速情况下对小信号进行放大器的设计。因此对阻抗、频率响应、谐振等问题进行了深入了分析,发现原来过去所学的电工学基础、模拟电子技术基础、控制论等学科之间有着相互紧密的联系。因此这里把这些问题全部从新梳理一遍,然后挖掘各部分之间的关系。并以此来解决一个实际要用到的运算放大器的设计。文章目录1.复阻抗1.1阻抗的定义1.2理想电阻的复阻抗1.3理想电容的复阻抗1.4理想电...
2019-08-23 13:39:21
1548
原创 Modbus TCP协议解析
在之前的文章中,我们介绍了Modbus RTU协议的内容和实现方法。最近在进行网络通讯的时候又用到了Modbus TCP协议,因此这里把自己对Modbus TCP的了解总结一下。文章目录一、Modbus TCP协议解析Modbus TCP和Modbus RTU的区别Modbus TCP协议的构成Modbus TCP的报文头Modbus TCP的功能码Modbus TCP的数据码二、持续更新:Mo...
2019-07-07 17:13:54
13274
2
原创 FPGA笔记之verilog语言(基础语法篇)
FPGA笔记之verilog语言(基础语法篇)写在前面:verilogHDL语言是面向硬件的语言,换句话说,就是用语言的形式来描述硬件线路。因此与C语言等软件语言不同,如果想要在实际的电路中实现,那么在进行verilog语言编写时,就需要提前有个硬件电路的构思和想法,同时,在编写verilog语言时,应该采用可综合的语句和结构。1.verilog 的基础结构1.1 verilog设计的基本...
2019-07-07 15:58:57
55207
5
原创 随笔:项目总结 主要是STM32的一些应用
终于最近做的一个项目基本上结题了,因此有时间来对这个项目所涉及到的知识进行一个总结。cJSONcJSON的内容具体见我的另一篇文章,比较详细,这里就不叙述了。UCOS-II首先在这个项目里,我在STM32的程序中移植了一个UCOS-II的系统。关于UCOS-II操作系统的移植,可以参考网上的教程,例如正点原子的例程等,这方面的知识网上还是比较多的。具体的流程就不论述了,这里主要是对UCOS...
2019-06-30 20:17:58
6089
原创 随笔:STM32的C语言编写遇到的问题1
问题1.在进行KILE的debug时,程序停在了LDR R0, =SystemInit这里不动了。原因: debug的断点设置的太多了问题2:C语言里,函数的输入参数是不能被改变的。意思是说,加入我在函数内部,对某输入参数进行了处理,在离开函数后,该处理便会失效。https://blog.csdn.net/CGKXDPP/article/details/80512096解决方法:...
2019-04-27 22:07:43
639
原创 Json和cJson的学习总结以及在STM32里移植cJSON需要注意哪些问题
最近在做项目的时候遇到了JSON格式的数据。需要对Json格式的数据进行解析,而我所使用的设备是嵌入式单片机,因此需要借助cJson来将Json和C语言结合起来。这篇文章就是我对Json和cJson相关内容知识的一个总结。以及我在STM32移植cJSON时遇到的一些问题6以及解决方法。
2019-04-24 21:44:14
3966
2
原创 无源滤波器讲解和典型DCDC稳压芯片外围电路的设计
最近在帮导师做项目,接触了一些电路板的制作等方面的知识,其中对电源模块的设计是每个电路板设计时都要面对的问题。对于芯片板来说,我们往往要求其供电电源具有很高的电源质量,具体来说,就是电源的稳定性较好、抗干扰能力强、纹波小、无尖峰脉冲出现。特别是对于FPGA等高速芯片,电源质量的好坏直接决定了芯片能不能正常工作,因此这里对PCB板中的电源模块进行一个知识的汇总。主要分为两个部分,一个部分是对常见的P...
2019-03-29 18:33:56
8828
3
原创 随笔:卡尔曼滤波前置知识(概统知识的复习)
下一篇文章打算好好讨论一下卡尔曼滤波器,在此之前,先需要对相关的前置的知识进行一个复习,主要是概率统计的知识。1.数学期望在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。对于离散型的随机变量,数学期望是其各个离散结果的加权平均数,即E(X)=∑1∞xkpk E(X) = \sum...
2019-03-15 22:26:40
829
原创 STM32作为从机通过RS485实现Modbus RTU通讯
文章目录1. 串行通讯、RS485、Modbus的联系和区别2. 串行通讯介绍2.1 串行通讯的定义:2.2 串行通讯的分类:2.3 串行通讯的参数和意义:2.4 STM32中的串行通讯:3. RS485介绍3.1 RS485的定义:3.2 STM32中的RS485:3.3 RS485的硬件电路设计:4. Modbus RTU介绍5. STM32代码实现6. MODBUS协议调试时出现的问题和原因...
2019-03-13 15:31:12
40020
54
原创 随笔:在C语言中如何快速的将16位数据拆开存到8位数组中
最近在过年,并且在推进导师的项目和写论文,很久没有更新了,先随便写点东西。在大四的时候曾经遇到过,在进行串口通讯时,只能通过8位数组,8位8位的传输数据,因此有时需要读取或存储更高位的数据例如16位或32位时,就会存在数据的拆分和组合的问题。当时的解决方法是通过定义共用体,或者对数据进行移位和取余来实现数据的拆分和组合。现在在做项目时又遇到了以上问题,经过这段时间的学习,对C语言的理解更深刻...
2019-03-02 18:04:33
11738
3
原创 进化算法之粒子群算法和Matlab实现(多维)
前面一篇文章介绍了遗传算法,这里再介绍一种进化算法,称为粒子群算法。同遗传算法类似,粒子群算法也是仿照了自然界的生物现象得到的。这种现象就是鸟群在某个未知空间内寻找食物这一思想。鸟群通过自身经验和种群之间的交流调整自己的搜寻路径,从而不断寻找,直到找到食物最多的地点。其中某个个体就是鸟群中某一只鸟,该个体具有的属性就是其所在位置和搜索方向。该个体所在地点对应的食物数量可以理解为该处函数取值的理想...
2018-10-10 16:35:31
29925
78
原创 遗传算法的原理和matlab实现(多维)
遗传算法就是在一定的自变量有限的取值范围内,随机取若干个个体,每个个体相当于自变量范围内的一个取值,若干个个体共同组成一个种群,个体对于环境的适应能力体现为该个体对应的因变量,不同的个体得到的结果不同,对于结果较好的个体,其下一代在种群中的占比更高,对于结果不好的个体,其下一代在种群中的占比会更少,简单来说,就是好的个体被保留,坏的个体被淘汰。经过不断的更新换代,最后结果会不断逼近最优的结果。...
2018-09-17 17:08:06
27004
34
原创 BP神经网络算法的数学推导和Matlab实现
首先声明,这篇文章不是神经网络的扫盲文,如果只想知道神经网络的概念那笔者还是推荐找一些深入浅出的文章来看。但是如果需要自己实际搭建和使用一个神经网络,同时具备一定的数学功底的话,那这篇文章就是为了深入的剖析神经网络算法的工作过程和模型而写的。这里笔者把整个神经网络的工作过程由特殊情况推广到一般情况,让读者了解整个神经网络的工作过程,并且给出实际搭建一个神经网络的方法。希望有意愿了解的读者能够拿起笔...
2018-09-11 19:30:18
9061
3
原创 Matlab串口数据接收发送流程和串口速度提高
在进行PID参数整定的工作过程中,我需要将电机的转速、扭矩、母线电压、母线电流、相电压、相电流等参数通过串口传递到电脑上用Matlab来进行BP神经网络算法的PID整定计算,再将计算得到的PID参数传给电机的驱动板,来控制电机运行。在整个过程中采用了Matlab来进行串口数据的读写。目前整个流程已经走通,在此将实现过程中遇到的问题,解决方法,以及尚未解决的疑问进行总结。首先声明本人是一个初学M...
2018-09-11 19:28:52
17729
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人