自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Matlab Filter函数学习及C语言2阶实现

在Matlab中使用butter函数设计n阶滤波器b、a系数在Matlab中使用将b、a系数传入filter函数实现滤波

2023-04-14 08:10:32 1248

原创 Python Matplotlib.pyplot.plot

Python Matplotlib.pyplot.plot参数markerlinestylecolor参数marker============= ===============================character description============= ==============================='.' point marker',' pixel marker'o' circle

2021-08-25 22:53:02 165

原创 Python json

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-01 23:52:34 207

原创 Analog Noise

目录一、模拟器件噪声有几种表达方式:二、噪声频谱密度、RMS噪声、峰峰值噪声的关系:一、模拟器件噪声有几种表达方式:噪声频谱密度,单位:uV/√Hz RMS噪声,单位:uV 峰峰值噪声,单位:uV二、噪声频谱密度、RMS噪声、峰峰值噪声的关系:RMS噪声=噪声频谱密度*√系统最高噪声频率,假设系统最高噪声频率10KHz,噪声频谱密度0.8uV/√Hz,则RMS噪声为:0.8 uV/√Hz*√10000=80uV 峰峰值噪声=6*RMS噪声(6sigma约等于99.7%采样点的峰峰

2020-08-19 22:31:50 1934

原创 Altium Designer 汉化

测试版本:AD 191、点击右上角“设置”按钮2、System -> General -> Localization -> ✔ -> OK -> OK3、重启

2020-07-28 23:46:53 7568

原创 Android开发——自定义颜色

1.在res/values文件夹中添加文件:color.xml,输入如下代码:<?xml version="1.0" encoding="UTF-8"?><resources> <color name="Red">#f44336</color> <color name="Pink">#e91e63</...

2017-01-17 10:48:12 610

原创 快速排序、归并排序、大顶堆排序、希尔排序代码实现

快速排序 O(n*log2_n) O(log2_n) 不稳定归并排序 O(n*log2_n) O(n) 稳定大顶堆排序 O(n*log2_n) O(1) 不稳定希尔排序 O(n*log2_n) O(1) 不稳定

2016-09-08 00:15:07 653

原创 C++运算符重载示例——复数

#include using namespace std;class Complex{public: Complex(int real = 0, int image = 0) :real(real), image(image) { cout << this << " Complex()" << endl; } ~Complex() { cout << this <<

2016-09-06 20:26:00 503

原创 VS编辑器常用快捷键

代码折叠和展开CTRL + M, CTRL + O 折叠所有代码定义CTRL + M, CTRL + L 折叠和展开所有代码定义CTRL + M, CTRL + M 折叠和展开当前函数代码定义快速注释CTRL + K, CTRL + C 添加注释CTRL + K, CTRL + U 取消注释其他CTRL + K, CTRL + F 格式化代码...

2016-09-01 15:25:58 559

原创 Linux多线程小结

编译时必须链接pthread库

2016-08-25 23:19:03 459

原创 C++中static和const

static修饰成员变量和函数,使其不属于任何一个类实例,而是类的所有实例所共有的。修饰成员变量:必须类外初始化。修饰成员函数:只能使用静态成员变量。总结:静态成员可以在多个对象实例间进行通信,传递信息。

2016-08-24 09:58:10 232

转载 线程安全与可重入

线程安全:被多个并发的线程反复调用时,他会产生正确的结果。可重入:当被多个线程调用的时候,不会引用任何共享数据。

2016-08-23 23:38:14 208

转载 嵌入式中断服务函数的一些特点

中断服务程序需要满足如下要求:  (1)不能返回值;  (2)不能向ISR传递参数;  (3) ISR应该尽可能的短小精悍;  (4) printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用。

2016-08-23 19:39:07 1839

原创 C/C++程序编译内存分配情况

栈:由系统管理内存的分配和释放。堆:由程序设计者自行管理,利用malloc等函数或new关键字分配内存,使用完,必须对应地使用free函数或delete关键字释放内存。

2016-08-18 22:26:47 362

原创 UART、IIC、SPI串行通信协议小结

UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)引脚:2根 RXD:接收数据 TXD:发送数据数据格式: 起始位 数据位(5/6/7/8) 奇偶校验位(不常用) 停止位数据速率: 波特率:~...

2016-08-18 10:01:35 2013

原创 Linux文件I/O小结

-r 普通文件(regular) -d 目录文件(directory) -b 块特殊文件(block special) -c 字符特殊文件(characterspecial) -p 管道文件(pipe) -s 套接字文件(socket) -l 符号链接文件(symbolic link)

2016-08-17 01:04:14 523

原创 Linux信号小结

SIGKILL 终止一个进程 SIGSTOP 终止一个进程(作业控制) SIGABRT abort()函数产生,进程异常终止 SIGALRM alarm()函数产生 SIGINT 用户中断键产生,(Ctrl+C或Delete) SIGUSR1 用户定义的信号 SIGUSR2 用户定义的信号

2016-08-16 20:49:15 420

原创 Linux进程管理小结

进程控制相关函数:进程创建:fork() vfork() exec()进程终止:exit() wait() waitpid()进程ID:getpid() getppid()

2016-08-16 20:07:05 316

原创 Git在Linux中下载源码形式安装简单记录

下载地址:https://github.com/git/git/tags

2016-08-16 00:05:58 507

原创 C++ Primer 笔记——第二部分(容器和算法)

顺序容器1) vector:支持快速随机访问2) list:支持快速插入删除3) deque:双端队列

2016-08-07 16:40:44 343

原创 C++ Primer 笔记——第一部分(基本语言)

第1章 快速入门第2章 变量和基本类型...

2016-07-30 13:58:16 248

原创 有序查找

有序查找针对已经排好序的序列进行查找就是有序查找。有序查找有折半查找,插值查找,斐波那契查找等算法。

2016-07-24 23:44:09 936

原创 顺序查找

顺序查找是最基本的查找技术。从第一个记录的关键字开始逐个与给定的关键字比较,直到找到相等为止,则查找成功。如果直到最后一个记录都还没找到相等的,则查找不成功。优化利用增减一个“哨兵”,可以减少每一次匹配关键字后的比较是否结束。

2016-07-21 15:11:31 337

原创 Standard C++ Library reference

Standard C++ Library reference

2016-07-09 14:18:12 710

原创 Linux网络配置脚本

查看网络配置:ifconfig配置脚本文件:/etc/sysconfig/network-scripts/ifcfg-eth0虚拟机三种网络模式:桥接模式、仅主机模式、NAT模式

2016-06-28 13:13:59 2011

原创 Linux Programmer's Manual

Linux Programmer's Manual1: User commands(用户命令)2: Systemcalls(系统调用)3: Library functions(库函数)4: Devices(设备)5: Files(文件)7: Overviews, conventions, and miscellaneous(杂项) 8: Superuser an

2016-05-03 01:15:49 1478

原创 大小端模式

大端模式:高字节放低地址,低字节放高地址小端模式:高字节放高地址,低字节放低地址一个数0x1234中0x12位高字节,0x34为低字节。51单片机:大端模式80x86微机:小端模式STM32:小端模式以下是测试大小端模式的程序:#include void main(void) { union data { int i; char c;

2016-03-27 12:11:49 335

原创 指针学习笔记(4)——指针与数组

指针变量要点1. 任何指针变量占用的空间都是4个字节(32位机)2. 任何指针变量加1是使它指向下一个元素的地址测试程序void test_1(){ char c; int i; long l; float f; double d; char *pc=&c; int *pi=&i; long *pl=&l; float *pf=&f; dou

2016-03-14 00:57:09 351

原创 浮点数据与4个单字节的转换

前言:在串口、IIC、SPI等数据传送时基本上都是一次传送一个字节的数据,如果要传送浮点数据?通常是将浮点数乘以一个倍数,如10,100,1000,10000等,然后将其转换为整型数据再转化为单个字节进行传送。如果这个数据是要进行显示的话,那么这样做并没有什么不好。但是如果这个数是要传输给另端进行继续计算的话,那么就要考虑另一种方法了,就是直接将浮点数据转换为4个单字节,在另一端接受完数据...

2016-03-05 23:57:46 26329 8

原创 51单片机存储器小结

存储器分为程序存储器(ROM)和数据存储器(RAM),两种又都可以分为片内和片外,片外即需要自己在单片机外部扩展。8051单片机的片内程序存储器有4K,片内数据存储器有256个字节,其中又分为高128字节位特殊功能寄存器区,真正用户能用的RAM只有低128字节。8052单片机有8K片内程序存储器,而数据存储器除了低128字节外还有扩展的高128字节,地址上跟特殊功能寄存器一样,但物理上是独

2015-12-24 21:52:19 4975 1

原创 堆栈的生长方向

堆栈的生长方向从最本质的理解是堆栈入栈方向是从高地址向地地址还是低地址向高地址。从高地址向低地址生长一般叫做向下生长,也叫作逆向生长。从低地址向高地址生长一般叫做向上生长,也叫作正向生长。一般来说堆栈是逆向生长的。51单片机的堆栈生长方向为正向生长,因为执行PUSH指令时先将SP的值加1再将指定的8位数据单元的内容入栈。80x86微机的堆栈生长方向为逆向生长,因为执行PUSH指

2015-12-05 23:01:58 8605 2

原创 冒泡排序法、选择排序法和插入排序法的排序过程

1.       冒泡排序法:n个数从小到大排序,经过n-1趟循环,每次循环中两两比较相邻两个数的大小,前者大于后者则将两数交换,直到最后一个,每次通过不断交换相邻两数将未排序中的最大的那个数交换到排序中的最前一位。2.       选择排序法:n个数从小到大排序,先将第一个数认为最小的数,经过n-1趟循环,每次循环中将认为最小的数与下一个数比较,如果大于则交换这两数,直到最后一个,每次找出未

2015-11-24 00:39:17 1502

原创 单片机和串口设备通讯设计时要注意的几个问题

现在有很多外设喜欢通过UART接口进行通讯控制,比如串口WIFI模块,串口蓝牙模块,串口HMI等等。因为基本上每款单片机都有UART这个硬件设备,这使得通过UART来控制的外设可以在众多单片机系统中使用。单片机和单片机串口通讯,单片机和外设串口通讯,设计时要注意几点:第一,  是最基本,往往也是容易忽略的,就是电平匹配问题。3.3V和5.0V等不同电平的进行通讯时,要进过电平匹配电路,才能

2015-11-08 12:25:37 3729

原创 指针学习笔记(3)——小结

1. 形式如(*)p 的p表示指向什么的指针变量,例如:int * p: p为指向执行数据的指针变量int (*P)[n]: p为指向包含n个元素的一维数组的指针变量,即数组指针int (*p)(): p为指向函数的指针变量,该函数返回一个整形int **p: p为指向一个整形数据的指针变量

2015-10-29 00:27:57 421

原创 指针学习笔记(2)——基本操作

int a[10];int * p;in i;p=a;1.       数组名a代表数组首元素的地址,它是一个指针常量,它的值在程序运行期间是固定不变的。2.       “p=a”的作用是将数组a的首元素的地址赋给指针变量p。3.       引用一个数组,可以用下标法,如a[i]或p[i],也可以用指针法,如*(p+i)或*(a+i)。4.       [ ]实

2015-10-25 23:59:16 398

原创 指针学习笔记(1)——运算符*

1.       指针是一个地址,而指针变量时存放地址的变量。2.       变量的指针就是变量的地址,存放变量地址的变量是指针变量,它用来指向另一个变量。3.       一个指针变量只能指向同一个类型的变量。4.       *指针运算符,取指针所指向的对象的内容。5.       *和&两个运算符优先级相同,但按自右而左方向结合。6.       *和++两个运算符优先

2015-10-22 20:15:25 391

原创 参考51单片机示例程序要注意的一点

网上买的很多模块的示例程序很多都是基于51内核的,51单片机简单适合入门,但也正是因为简单,在参考51单片机程序设计时需要注意一些东西,今天就简单说一点:51单片机在使用引脚的时候,是不需要配置引脚模式,输入输出模式,驱动模式等,所以在移植51单片机程序的时候千万要注意另一款单片机是否需要配置关于端口设置的寄存器。例如,在数据需要双向传输的引脚,51单片机在数据输入与输出时不需要改变引脚的

2015-10-21 22:04:09 694

空空如也

空空如也

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

TA关注的人

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