- 博客(48)
- 收藏
- 关注
原创 简单滤波算法
可以发现,每次采集都会逼近,采集次数无限,则会无限逼近。如果中间有个干扰出现,那么他会震荡一下,然后再次逼近,可以根据数据的采集频率来适当的选取a的值。总结:可以按照实时性和数据干扰的跳变范围来选取合适的a值。在温度采集中,一秒可以采集上千次,然后将上千次数据处理,得到这一秒比较可靠的温度值。公式:f(x)=(1-a)*x+a*f(x-1)a:越小越灵敏,越大曲线越光滑。带入值:a=0.3 f(0)=0。f(x-1):上一次的结果。f(x):滤波后得到的值。
2024-04-19 16:27:41
1327
原创 HC-RS04超声波模块测速
本质:将数据突变变得更平滑,但是需要更多的时间。换个思路就是我干的多,我会按照趋势变化,但是变化需要更多的时间资源。预测噪声变大,曲线更平滑,需要更多的时间资源。限幅滤波滤除那些超过量程范围的,大于23.5ms(也就是计算长度大于400cm)的数据全部丢弃。代码比较简单,就是给一个触发信号,然后接收引脚回你一个与距离成线性关系的变宽脉冲。卡尔曼滤波让曲线变平滑,一维卡尔曼,只是对采集的时间滤一下波。多维的就会涉及到协方差,协方差是两个属性的相关性。一个接收,为脉冲的宽度,也就是高电平时间。
2024-03-25 16:11:57
845
原创 stm32f305裸机程序的隐式类型转换错误
单片机是32位的,所以立即传递的实参是32位有符号的,但是有符号的转成u64应该是0x0000 0000 0000 000a。如果是栈溢出覆盖堆,那么堆一般是malloc人为主动分配的内存,存储一些数据,可能会导致其中的数据更改,如果是函数返回地址,那么程序就会跑飞甚至出问题,导致硬件故障。明确的了解堆栈大小,内存分配不得超过堆区大小,函数嵌套尽可能的少,防止栈溢出。可见0x080f=0x78,说明新分配的这个内存是有别的数值的,造成这种现象有2个原因,一是内存碎片导致的,二是栈溢出覆盖堆导致的。
2024-01-13 17:14:37
489
2
原创 关于驱动的一次操作流程
5.其实每一步都是无数人花费很长时间逐渐搭建的框架,每一步都值得深入学习,这是我目前所了解的用户如何调用系统资源的流程,会不断更新,不断学习。驱动是一个内核调用设备资源的载体,用户通过系统调用进入内核,然后内核操作驱动动作来操作外设寄存器地址。通过提供的函数分配或者申请设备的主次设备号,主次设备号是设备树的标志,使得内核管理更加方便。open函数的参数有驱动文件指针参数,根据驱动文件指针,执行驱动文件中的open函数。驱动文件中的open函数会操作物理地址映射的虚拟地址,进而操作外设寄存器。
2023-06-28 23:18:45
101
原创 vscode 配置c/c++过程
5.配置vscode环境, ctrl+shift+p打开命令栏,输入C/C++ ,在下拉栏中选择C/C++配置UI选项,依次输入,相关要求。2.下载MinGW_64,选择一个稳定款就行,选择好型号,那个下载引导我试了好几次都不能用,所以直接在file下选择了一个,很慢,慢到令人发指。3.解压后MinGW配置环境变量,环境变量是在程序运行时检索的路径,也就是编译时告诉vscode哪里有编译器,根据编译路径,一下就找到。"${workspaceFolder}/*.c",//工作台目录下所有.c文件。
2023-06-21 14:18:10
128
原创 关于Ymoden 1k数据通讯协议的总结
接收工具:超级终端, 发送工具,自己qt5写的,要源码的话直接网上找就行。crc16校验为crc16_xmoden协议。总结:结束帧格式一定要对,不然会一直传输数据。
2023-06-17 16:57:03
547
原创 我对crc的理解
这一帧数据就会变大 256*256倍(1左移16位就变大2^16),然后除以一个特定的数,忽略进位和借位。理论到代码中具体使用是进行了一些优化的,具体的优化方式依旧有专门的标准,但是都是为了校错服务的。1,奇偶校验,检测字节中的1的个数,但是字节中1位置错误无法检测出,只知道有奇数偶数个 1,但是,1的位置无法确定,缺陷很明显。0+0=0,0+1=1,1+1=0,0-1=1 就是异或运算。2.和校验,一个字节加1和下一个字节减1的错误无法检测出,但是依旧很强。有余数说明数据变化了。
2023-06-15 19:59:21
243
原创 c硬件开发中的一个函数重用警告
reentrant 的数据堆栈会重新开辟一块区域。为了解决线程间调用的问题。注意reentrant会消耗大量栈区域,因为需要保存局部变量和参数,不能传递bit类型数据。
2023-03-14 10:48:55
86
原创 关于handle.post(Runnable r)方法的理解
1.数学有多牛逼,方法就有多牛逼。2.人就是对象,数学原理就是方法。3.现代科技的本质依旧是数学原理的发展。
2023-02-16 11:37:24
1602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人