![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 76
bdjsm_hh
这个作者很懒,什么都没留下…
展开
-
常用数字滤波算法代码
文章目录限幅滤波中值滤波算术平均加权平均滑动平均低通滤波限幅滤波程序中进行数据选择限幅/*限幅滤波算法*/#define Limit_A 50char data; //上次数据char filter1(void){ char datanew; datanew = getdata(); //当前数据 if((datanew - data)>Limit_A || data - datanew)>Limit_A) return data; else return datanew原创 2020-09-14 00:40:08 · 956 阅读 · 0 评论 -
STM32驱动VL6180X测距
文章目录I2C读写读取ID(无需初始化)初始化代码读取距离读取环境光强度测试代码VL6180测距原理就是TOF,超声波也可以测距,但是这个测距是用红外光。VL6180X集成了测距、环境光传感器、接近传感器测距(RANGE):0~100mm精度高,可以到200mm,但是我试过200+以上直接255了;环境光 ambient light sensor(ALS):测光强,不同增益等级,0-100 Lux,我的模块没有这个功能,但有代码(可能会出错)。以下是软件I2C代码,硬件I2C没试过,可能可以用,不原创 2020-09-03 20:35:01 · 9401 阅读 · 28 评论 -
STM32制作FLASH字库
自己做了一块板子,FLASH(W25Qxx)都是空的,自己写了段简洁的代码用FAT从SD卡写到FLASH中。有两种方式写入字库。一种把FAT系统做到FLASH里,第二种是直接写入FLASH后一段地址空间里。相比之下,我选择后者。为什么呢?FATFS太大了!你要是每次显示几个汉字就去移植,再去编译下载,那可真慢。。所以后者直接移植一个FLASH驱动就可以了。代码不多,用到什么写什么嘛,实现小功能就小代码呗。下面贴代码了,大概讲一下地址定义//W25Q128! -> 总空间:16M#defin原创 2020-08-15 13:42:30 · 4841 阅读 · 0 评论 -
STM32之间的CAN无法通信问题解决
两个CAN设备无法通信的问题,大概有以下几点1、120欧电阻没形成闭环网络2、波特率设置出问题3、接线错误4、模式设置出错5、筛选器掩码设置解决办法1、120欧电阻是必须的,但是一条总线只需要两个120欧电阻2、波特率这可是大坑,因为CAN是有过滤功能的,只要你不符合,完全看不到主机发来了什么,不像串口那样就算波特率出错了,也能看到乱码。特别时F407和F429两个主频不同的M4芯片(本人遇到的),CAN_Prescaler最好的应该是F407=14,F429=15(这是APB1之间的比值)原创 2020-08-10 18:15:46 · 5082 阅读 · 0 评论 -
STM32串口IDLE中断
stm32串口的收发似乎不太一样,发只要你把数据送出去就行了,电脑会自动读取(电脑不知道你啥时候发,总不能一直等你的数据吧),而你的stm32要接受一个数据呢?一直在USART_ReceiveData吗?(当时这个问题也困扰了我,直到接触了ESP8266)后面我发现有个很好的东西,串口IDLE中断,能自动响应你从电脑(别的串口)接收到的不定长数据。而不是一直干等着。先简单说说原理吧,大概是,你的stm32接收数据时,并不会马上把数据马上处理掉,而是写到你定义的缓冲区里,然后你串口线上一个BYTE长度的时原创 2020-07-29 00:45:47 · 3155 阅读 · 2 评论