自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (8)
  • 收藏
  • 关注

原创 卡尔曼滤波

简单嵌入式的卡尔曼滤波// 有4个传感器float x_last[4] = {0};float p_last[4] = {0.02,0.02,0.02,0.02}; float Q = 0.018; float R = 0.542; float kg; float x_mid;float x_now;float p_mid;float p_now;void Kalman_filtering_init(float*z_real,unsigned char n

2021-11-08 16:10:04 97

转载 linux下动态与静态链接库的使用及区别

1.为什么要有链接库 我们平时在写C代码时一定会经常重复写某些很多程序中都经常用到的代码,比方说字符串的简单操作函数,或者链表等。那么我们如何能避免老是重复的去写这些基础的代码呢?也许你会不假思索的想到把这些常用的函数装到一个头文件里,调用的时候只要include该头文件不就可以么...

2021-06-28 16:38:05 247

原创 USB枚举过程(只包含输入)思维导图与鼠标报告描述符基本结构

USB枚举过程(只包含输入)思维导图鼠标报告描述符基本结构

2021-06-05 11:11:12 205

原创 USB协议-鼠标功能实现-测试板PCB工程+驱动源码+配套图书

USB学习板实物图板上资源1、用于USB协议的学习。2、PDIUSBD12芯片配合STC15W408AS芯片做主控3、加上TM1650的按键扫描功能实现鼠标基本功能4、附带TM1650驱动的16颗LED灯和8个按键板子经过测试可以正常运行板子PCB下载连接板子PCB+驱动源码+PDF资料 三合一...

2021-06-01 17:14:52 271

原创 STC15W408S 最小系统板

最小系统板成品图:功能:①、配有DC插口,7805线性稳压芯片,支持宽电压6-24V DC供电。②、也支持USB线直接供电。③、板载主控STC15W408S。④、板载4个按键,1颗LED灯连接主控,用于调试。⑤、板载上电指示灯和USB自动下载电路,通过USB线就可实现下载,无需外接烧录器。PCB文件下载连接添加链接描述...

2021-05-27 17:59:32 1427

原创 安全问题和指针误用

不恰当的指针声明int * ptr1,ptr2; //第一个是int*,第二个是int型int * ptr1,* ptr2;//两个都是int*#define PINT int*PINT ptr1,ptr2; //第一个是int*,第二个是inttypedef int* PINT; //定义为类型PINT ptr1,ptr2; //第一个和第二个都是int*型...

2021-05-21 18:07:16 74

原创 指针和数据结构

链表单链表//一个结点typedef struct node{ void*data; struct node*next; } Node; //链表,持有头节点、尾结点及当前结点typedef struct link_list{ Node* head; Node* tail; Node* current; }LinkedList;在使用链表之前要先初始化:void init_list(LinkedLi

2021-05-19 17:33:26 207

转载 低功耗蓝牙(BLE)协议栈

****低功耗蓝牙(BLE)协议栈BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协

2021-05-16 21:37:11 161

原创 指针和结构体

结构体的两种声明方式利用struct关键字声明:struct heheda{ char*firstname; char*lastname; char*title; unsigned int age;};利用type声明typedef struct heheda{ char*firstname; char*lastname; char*title; unsigned int age;}HEHEDA;实例化HEHEDA he;声明一个HEHEDA的指针

2021-05-15 11:01:50 135

原创 指针和字符串

字符串基础字符串是以ASCII字符NUL结尾的字符序列,ASCII字符NUL表示为\0。字符串的长度是字符串中除了NUL字符之外的字符数。字符串初始化初始化char数组//字符串初始化//初始化操作会把字符复制到数组里面,以\0结尾。char header[]=“Media Player";//利用strcpy初始化char header[13];strcpy(header,“Media Player");//把字符逐个赋给数组元素header[0]='M';..........

2021-05-14 15:56:57 80

原创 指针和数组

误区数组名字有时候可以当做指针来用,但数组的名字不是指针,尽管数组使用自身的名字可以返回数组地址,但是名字本身不能作为赋值操作的目标。

2021-05-11 20:06:44 77

原创 指针和函数

通过指针传递和返回数据要在某个函数里面修改数据,要用指针传递数据。void swap(int* a,int *b){..............}通过传递一个指向常量的指针,可以防止数据被修改。void swap(int const* a,const int *b){..............}返回指针。int * test(int size,int value){ int * arr=(int *)malloc(size*sizeof(int)); f

2021-05-10 11:26:06 81

原创 C语言动态内存管理

动态内存分配基本步骤:用malloc类的函数分配内存;用这些内存支持运用;用free函数释放内存,防止内存泄漏;//申请一个Int空间int * pi=(int*)malloc(sizeof(int)); *pi=5; //使用空间printf("*pi:%d",*pi);free(pi); 内存泄漏原因:丢失地址pi指针重复赋值,致使丢失前面的内存地址。int * pi=(int*)malloc(sizeof(int)); //丢失.......int * p

2021-05-08 14:19:40 208

原创 认识C指针

指针和内存内存分为:静态、全局内存(全局变量和静态变量)自动内存(栈)动态内存(堆)声明指针int * pi; //指针要初始化后,才可以正常工作阅读指针小技巧倒过来读const int * pi;/**pi---是一个变量*pi---是一个指针变量int*pi--是一个指向整数的指针变量const int * pi;--是一个指向整数常量的指针变量地址操作符num=0;pi=#打印指针的值格式说明符含义%x16进制显示

2021-05-08 11:12:13 61

原创 USB概念及协议基础总结

USB概念及协议基础总结usb拓扑结构:usb是一种主从结构,主机Host,从机Device。usb的拓扑结构为金字塔形,如图1所示。塔顶为USB主控制器(处理数据)和跟集线器,USB集线器将一个USB口扩展为多个,但是并不增加带宽,带宽是共享一个USB主控制器的。理论上,一个USB主控制器最多可以接127个设备,因为协议规定每个USB设备具有一个7bit的地址。USB数据传输过程:USB主控制器发出命令和数据,通过跟集线器,再通过下面的集线器发给USB设备;设备接收数据后,处理,按原路返回一些

2021-05-06 17:26:51 732

原创 LINUX编辑器

编辑器:gedit编辑器:要借用可视化页面 eg:gedit 123.txtvi/vim编辑器:三种模式:一般模式:用于文本浏览,查找,复制,粘贴操作,不可以对文件修改插入模式(编辑模式):对文件修改编辑命令行模式:配置编辑器属性和功能,配置行号或者高亮代码模式之间的切换:①、一般模式下输入’:'进入命令行模式,ESC退回一般模式。②、一般模式下输入’a,i,o/O,r/R’进入命令行模式,ESC退回一般模式。③、vim 或 vim 进入一般模式。vim编辑器的指令:①、打开vim

2021-04-01 18:07:09 61

原创 LINUX常见命令行

LINUX常见命令行目录类:文本类:用户管理类:文件权限:网络操作类:目录类:①查询命令man:man man:进入帮助页面。1 可执行程序或 shell 命令2 系统调用(内核提供的函数)3 库调用(程序库中的函数)4 特殊文件(通常位于 /dev)5 File formats and conventions, e.g. /etc/passwd6 游戏7 杂项(包括宏包和规范,如 man(7),groff(7))8 系统管理命令(通常只针对 roo

2021-03-26 20:08:39 89

原创 EMC知识小结

①一些概念:EMI:电磁干扰,分为传导干扰和辐射干扰两种,前者通过导电介质或公共电源线相互干扰,后者则是通过空间耦合。EMS:电磁敏感性,指在有电磁骚扰的情况下,系统不能避免性能降低的能力,敏感性越高,抗扰能力越低。EMC:电磁兼容性,符合为电磁干扰制定出来标准的器件,我们就可以说此器件具有EMC。②EMC测试EMC项目分别时EMS和EMI。EMS包括:静电释放(ESD),辐射敏感度...

2020-04-18 15:16:14 3642

原创 几种常见的接地方式

几种常见的接地方式①单点接地:是指电路系统中只有一个物理点被定义为地参考点,其他各个需要接地的点都要连接到这个点来,在低频电路中,布线和元件之间不会产生过大影响,通常频率小于1MHZ的电路,采用一点接地。串联单点接地时,最敏感的电路要放在A点,这点电位是最稳定的。②多点接地:是指电子设备中各个接地点都直接接到距离它最近的接地平面上,PCB中的大面积敷铜接地,其实就是多点接地。在高频电路中...

2020-04-17 14:20:19 5846

USB相关图书及规格书 PDF版本

1、HID用途表 2、PDIUSBD12中文资料 3、圈圈教你玩USB pdf 4、hid1_11

2021-06-05

USB协议-鼠标功能实现-测试板PCB工程+驱动源码+配套图书.zip

1、用于USB协议的学习。 2、PDIUSBD12配合STC15W408AS,加上TM1650的按键扫描功能实现鼠标基本功能。 3、资源内部含有USB学习板的PCB工程(AD),与驱动源码程序(KEIL),和一些USB相关的资料。 4、代码和板子均经过测试,可以正常工作。

2021-06-01

USB 协议学习板 ——MINI

带PDIUSBD12协议芯片 STC15w408A单片机 TM1650 LED显示和按键驱动

2021-05-27

STM32的堆和栈.pdf

STM32的堆和栈.pdf

2021-02-20

STM32 .MAP文件的分析.pdf

STM32 .MAP文件的分析.pdf

2021-02-20

多种按键扫描c的源码

常用的按键扫描c源码: ①单颗按键双击、单击、长按。 ②多颗按键单击,长按。 ③按键矩阵的扫描。

2021-01-19

KICAD版STC15W408AS 最小系统板

1.含整个KICAD工程,包含原理图,库及PCB。 2.有GERBER文件。 3.板载硬件自动下载电路,通过usb线进行下载。

2020-12-01

常见的11种软件滤波方式

常用的11种软件滤波,用C语言编写。 1.限幅滤波 2.中位值滤波 3.算数平均滤波 4.递推平均滤波 5.中位值平均滤波法 6.限幅平均滤波法 7.一阶滞后滤波 8.加权递推平均滤波 9.消抖滤波 10.限幅消抖滤波 11.卡尔曼滤波(简单的)

2020-10-23

空空如也

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

TA关注的人

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