- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 预测误差变长编码的数据压缩方法
一、问题背景在嵌入式生理信号数据采集和传输过程中,为了获取更精确信号特征,常会使用较高的采样率。但由于BLE,WiFi传输带宽的限制,有时候我们不得不对数据进行压缩后再传递。这样可以在传输同样数据量的数据,中包含更多的数据。所以这是一种以牺牲 MCU 运算效率为代价,降低存储内存占用、提高传输速率的常用方法。在 PSG 项目中,其数据特点是通道数多、采样率高,所以数据量很大。如果直接传输原始数据,对数据的传输带宽要求很高。为了满足要求,我们加入了这种预测误差+变长码的压缩方法,期望在同样的速度下,传
2024-10-24 23:05:26
935
2
原创 MAX30102 血氧调试笔记
血氧饱和度(英语:Oxygen saturation),或称血氧浓度,是指血中氧饱和血红蛋白相对于总(不饱和+饱和)的比例。人体需要并调节血液中的氧气非常精确和特定的平衡。人体的正常动脉血氧饱和度为95-100%。如果该水平低于90%,则被认为是。血氧的测量主要分为透射式和反射式。目前的主流是透射式。但是两者原理差不多,都是使用发光二极管(红光RED,红外IR,绿光GREEN和蓝光BLUE等)照射被测部位,然后使用一个光电二极管接收透射/反射的光线,将光信号转换为电信号。
2020-11-07 13:51:38
60991
20
原创 两种内存池管理方法对比
目录一、问题背景二、两种内存池管理2.1 固定大小内存块分配(参考正点原子STM32F4 malloc.c)2.1.1 初始化2.1.3释放原理2.2 可变大小内存块分配(参考WSF BLE协议栈buffer management)2.2.1 初始化2.2.2 分配原理2.2.3 释放原理三、总结和对比一、问题背景最近在调试ambiq apollo...
2020-04-07 22:33:52
2311
5
原创 STM32F4 RTC精密数字校准与同步
一、问题背景最近在调试一个数据采集项目,采集板需要每隔一秒将原始数据打包,每个数据包包头包含有打包时刻的时间戳,如“S20191120152020”。采集时钟源采用的是MCU硬件定时器,通过外部高精度的8MHz分频得到,所以精确足够。但是数据包包头的时间戳是使用STM32 的RTC外设获得,实测长时间运行后,RTC平均误差一天快一秒左右。网上搜索发现,大家基本都有遇到STM32 RTC时钟不准...
2019-12-05 17:47:14
13382
8
原创 Unix时间戳和北京时间的相互转换(C语言实现 )
一、问题背景最近项目中需要上传包含时间戳的设备数据到服务器平台。原本想把“年”,“月”,“日”,“时”,“分”, “秒”分别用一个uint8_t的数据类型去存储,即占用6个字节。但是在平台配置协议时,只有一种叫“Unix时间戳”的数据类型。Unix时间戳只占用4个字节,而且Unix时间戳在服务器端更加通用,但是在单片机上没有想Linux环境下现成的time(),localtime(),mkti...
2019-05-23 10:19:01
14653
5
原创 MPU6500驱动调试笔记(STM32F407+SPI)
本来最开始使用MPU6050芯片,采集陀螺仪原始数据做生理信号采集好好的,但算法发现用IIC接口采样率(200hz)达不到要求。故寻找同类型支持SPI协议的芯片去替代,发现了这块MPU6500,还便宜,就用起来。在读写寄存器费了些周折(每读一次数据寄存器需要短暂延时,写寄存器有100ms延时要求),算是记录下吧
2017-09-21 17:21:24
14925
12
原创 ADS131A02驱动调试笔记(stm32f407+spi)
由于实验室研究采集研究心电信号,故开始使用ADS1292,而后考虑使用分立器件自己搭。故采用了这款ADS131A02高精度24bit的adc芯片; 调试中需要注意的点:
2017-09-08 17:30:05
18297
17
原创 O_APPEND的原子性操作
/*** @function: atomic_append.c ** @brief: in this function we will show how to use O_APPEND flag to guarantee atomic operation.* first function will open filename(if necessary creat it),
2017-08-03 17:13:42
841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人