- 博客(20)
- 资源 (8)
- 收藏
- 关注
原创 ESP32的事件
订阅:可以使用 esp_event_handler_register() 注册事件处理函数,以便在特定事件被发布时调用这些处理函数(此时要用到上一步的事件基)事件是基于自定义的事件基的。在代码中,使用 ESP_EVENT_DEFINE_BASE() 宏来创建一个事件基,该事件基允许你将相关的事件组织在一起。各个任务可以注册自己的事件处理函数,来处理特定的事件,这些事件处理函数可以在事件发布时被调用,从而实现对事件的响应。发布:使用 esp_event_post() 函数将事件发布到事件循环中。
2024-12-23 17:56:18
277
原创 卡尔曼滤波
简单嵌入式的卡尔曼滤波// 有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
122
转载 linux下动态与静态链接库的使用及区别
1.为什么要有链接库 我们平时在写C代码时一定会经常重复写某些很多程序中都经常用到的代码,比方说字符串的简单操作函数,或者链表等。那么我们如何能避免老是重复的去写这些基础的代码呢?也许你会不假思索的想到把这些常用的函数装到一个头文件里,调用的时候只要include该头文件不就可以么...
2021-06-28 16:38:05
274
原创 USB协议-鼠标功能实现-测试板PCB工程+驱动源码+配套图书
USB学习板实物图板上资源1、用于USB协议的学习。2、PDIUSBD12芯片配合STC15W408AS芯片做主控3、加上TM1650的按键扫描功能实现鼠标基本功能4、附带TM1650驱动的16颗LED灯和8个按键板子经过测试可以正常运行板子PCB下载连接板子PCB+驱动源码+PDF资料 三合一...
2021-06-01 17:14:52
336
原创 STC15W408S 最小系统板
最小系统板成品图:功能:①、配有DC插口,7805线性稳压芯片,支持宽电压6-24V DC供电。②、也支持USB线直接供电。③、板载主控STC15W408S。④、板载4个按键,1颗LED灯连接主控,用于调试。⑤、板载上电指示灯和USB自动下载电路,通过USB线就可实现下载,无需外接烧录器。PCB文件下载连接添加链接描述...
2021-05-27 17:59:32
1732
原创 安全问题和指针误用
不恰当的指针声明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
103
原创 指针和数据结构
链表单链表//一个结点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
233
转载 低功耗蓝牙(BLE)协议栈
****低功耗蓝牙(BLE)协议栈BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协
2021-05-16 21:37:11
192
原创 指针和结构体
结构体的两种声明方式利用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
174
原创 指针和字符串
字符串基础字符串是以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
97
原创 指针和函数
通过指针传递和返回数据要在某个函数里面修改数据,要用指针传递数据。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
103
原创 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
240
原创 认识C指针
指针和内存内存分为:静态、全局内存(全局变量和静态变量)自动内存(栈)动态内存(堆)声明指针int * pi; //指针要初始化后,才可以正常工作阅读指针小技巧倒过来读const int * pi;/**pi---是一个变量*pi---是一个指针变量int*pi--是一个指向整数的指针变量const int * pi;--是一个指向整数常量的指针变量地址操作符num=0;pi=#打印指针的值格式说明符含义%x16进制显示
2021-05-08 11:12:13
77
原创 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
880
原创 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
87
原创 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
110
原创 EMC知识小结
①一些概念:EMI:电磁干扰,分为传导干扰和辐射干扰两种,前者通过导电介质或公共电源线相互干扰,后者则是通过空间耦合。EMS:电磁敏感性,指在有电磁骚扰的情况下,系统不能避免性能降低的能力,敏感性越高,抗扰能力越低。EMC:电磁兼容性,符合为电磁干扰制定出来标准的器件,我们就可以说此器件具有EMC。②EMC测试EMC项目分别时EMS和EMI。EMS包括:静电释放(ESD),辐射敏感度...
2020-04-18 15:16:14
4680
原创 几种常见的接地方式
几种常见的接地方式①单点接地:是指电路系统中只有一个物理点被定义为地参考点,其他各个需要接地的点都要连接到这个点来,在低频电路中,布线和元件之间不会产生过大影响,通常频率小于1MHZ的电路,采用一点接地。串联单点接地时,最敏感的电路要放在A点,这点电位是最稳定的。②多点接地:是指电子设备中各个接地点都直接接到距离它最近的接地平面上,PCB中的大面积敷铜接地,其实就是多点接地。在高频电路中...
2020-04-17 14:20:19
6389
USB协议-鼠标功能实现-测试板PCB工程+驱动源码+配套图书.zip
2021-06-01
常见的11种软件滤波方式
2020-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人