- 博客(540)
- 资源 (133)
- 问答 (1)
- 收藏
- 关注
原创 【i.MX8 Linux】i.MX8 硬件平台介绍(MCIMX8M-EVK)
本专栏基于恩智浦半导体 i.MX 8M 应用处理器的 MCIMX8M-EVK 评估套件修改而来的硬件平台进行开发。大部分电路兼容 MCIMX8M-EVK 评估套件,有差别的部分会在具体驱动开发中提供局部电路图进行说明,对于 Linux 开发来说,思路和开发过程是通用的。下面对 MCIMX8M-EVK 板和 i.MX8 处理器做一个简单地介绍,帮助大家快速了解 i.MX8 家族和 MCIMX8M-EVK 的硬件概况。i.MX8 系列概述i.MX 8 系列应用处理器是一种功能和性能可扩展的多核平台,包括基
2021-03-05 12:18:21 4614 2
原创 为 Hexo 博客添加 valine 评论系统
注册 LeanCloud由于 valine 评论系统是放在 LeanCloud 上的,因此需要先打开 https://www.leancloud.cn/ 网址注册一个 LeanCloud 账号。注册完成后创建一个应用,比如名字为 blog,然后进入应用,在 设置 -> 应用 Keys 中找到 APP ID 和 APP Key。Hexo 配置在 hexo 工程下执行如下命令安装插件npm install next-theme/hexo-next-valine在 _config.yml 文件
2021-02-28 14:10:12 1659 4
原创 Hexo + NexT 通过自定义样式添加 Bilibili 图标
NexT 默认使用 Font Awesome 库作为 icon 库。美中不足的是,有一些中国的社交网站的图标在 Font Awesome 库中并没有提供,包括我们熟悉的哔哩哔哩、豆瓣、简书等等。所以如果想使用这些图标,就需要我们使用本地图标进行手动添加。首先,可以在 阿里巴巴矢量图标库 之类的网站找到你需要的图标,下载 SVG 格式文件。以 Bilibili 为例,将 SVG 文件放置在 hexo 工程的 /source/images/bilibili.svg 中。编辑 source/_data/sty
2021-02-27 17:19:24 2552 8
原创 《开源指北》之我和开源的故事
【开源指北 1.0 发布】和你做过最酷的事,就是一起「写书」去年参加的《开源指北》编写计划最近正式发布啦!我大概是最早加入该项目的非官方成员之一,因为我几乎每天都会登陆 Gitee 网站,在去年十月中旬就看到该项目的招募计划,然后就领取了第一章第一节的编写任务 —— 初识开源: 什么是开源?,接下来两个月里又陆陆续续补充了其他章节的内容。(文章末尾看到「阿基米东」的就是啦~) 【开源指北 1.0 发布】和你做过最酷的事.
2021-01-29 19:33:45 425 1
原创 Linux 模块导出符号 EXPORT_SYMBOL
概述EXPORT_SYMBOL 宏的使用时出现在 Linux 2.6 版本之后,在 Linux 2.4 内核中,默认的非 static 函数和变量都会自动导入到内核空间,不需要用 EXPORT_SYMBOL() 做标记的。出于安全考虑,不久之后 Linux 2.6 修改为默认不导出所有的符号,需要导出的符号使用 EXPORT_SYMBOL() 进行标记。1. EXPORT_SYMBOL 宏的作用EXPORT_SYMBOL 标签内指定的符号(函数或变量)对全部内核代码公开,不用修改内核代码就可以在内核模
2021-01-20 17:41:17 2994 1
原创 【Funpack】使用 pygatt 读取 Thunderboard 温度数值并控制 LED
pygatt 是一个用于读写蓝牙设备的 GATT 描述符的 Python 模块,可用于任何符合标准 GATT 描述符行为的设备,例如健身追踪器、传感器等等。pygatt 支持两种不同后端并提供了 Pythonic API:BlueZ (requires Linux), using the gatttool command-line utility.Bluegiga’s BGAPI, compatible with USB adapters like the BLED112.我们在 Linux 上
2021-01-07 13:19:09 1603
原创 【Funpack】BlueZ gatttool 操作 Thunderboard 蓝牙开发板
BlueZ 是 Linux 官方蓝牙协议栈。它是一个基于 GPL 发布的开源项目,从 Linux2.4.6 开始便成为 Linux 内核的一部分。其基础代码均是由就职于 Qualcomm 的 Maxim Krasnyansky 完成,包括 HCI、L2CAP、RFCOMM 和基本 socket 的实现。安装$ sudo apt install bluez安装完 Bluez 协议栈后,系统会增加一些调试工具,包括 bluetootchctl、hciconfig、hcitool 和 gatttool。
2021-01-07 12:57:45 1599 1
原创 【Funpack】低功耗蓝牙 BLE 协议架构
想要开发蓝牙应用,了解蓝牙协议架构是必不可少的。本文以低功耗蓝牙 BLE 为例,简要介绍 BLE 蓝牙协议架构,帮助开发者快速了解蓝牙协议概况。BLE 协议分层BLE 协议栈主要由如下几部分组成:PHY 层(Physical layer 物理层)。PHY层用来指定 BLE 所用的无线频段,调制解调方式和方法等。PHY层做得好不好,直接决定整个 BLE 芯片的功耗,灵敏度以及 selectivity 等射频指标。LL 层(Link Layer 链路层)。LL层是整个 BLE 协议栈的核心,也是 B
2021-01-07 12:36:26 1036 2
原创 【Funpack】蓝牙技术 Q&A
蓝牙技术的应用场景?蓝牙其实有很多应用场景。目前很多的消费品类产品如蓝牙耳机、蓝牙音箱、车载多媒体、蓝牙手环、蓝牙防丢器、蓝牙血压计、蓝牙体重秤,都使用蓝牙进行数据交互与控制。比如开车时,开启导航将手机蓝牙与车载蓝牙连接,可以将音频视频数据流通过手机蓝牙传送到耳机、音箱等设备上。都是智能设备与蓝牙手机连接,将数据发送到手机终端。在某一些应用场景当中,需要考虑低于安卓5.0系统的手机不支持 BLE,所以选择双模,以保证手机的兼容性。但随着手机产品的迭代和更新,较老的型号被淘汰,价格等因素,双模逐渐被单模替
2021-01-07 12:00:28 1632
原创 【Funpack】Thunderboard BG22 蓝牙开发板
硬件平台Thunderboard BG22 是一款来自 Silicon Labs(芯科科技)的蓝牙开发套件。Silicon Labs 公司一直提供丰富的业内先进的无线连接产品,BG22 是 2020 年推出的第二代蓝牙 SoC。蓝牙通信是短距离无线通信中增长最快的协议之一,其最大的优势是其低功耗特色。BG22 相对于之前 BG13 和 BG21 系列功耗更低,主要定位于电池供电带定位功能的极低功耗物联网应用。支持蓝牙 5.2 协议,更快的传输速度,更高精度和安全性,同时易于开发。开发板上有 USB M
2021-01-07 11:38:51 2041
原创 已初始化和未初始化的局部变量和全局变量在内存中如何分布?
在 C 语言中,通常可以把内存理解为四个分区:栈、堆、全局/静态存储区和常量存储区。栈(stack,也称“堆栈”)通常是用于存储在编译期间就能确定存储大小的变量,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。通常是局部变量、函数参数等的存储区。它的存储空间是连续的,两个紧密挨着定义的局部变量,它们的存储空间也是紧挨着的。栈的大小是有限的,在 Linux 中可以通过命令 ulimit -s 查看默认栈空间大小,默认情况下为 8192 KB(即 8MB)。因此如果在程序内部分配超大的数据
2020-12-31 01:00:22 4141
原创 【C语言】assert() 断言的作用
assert 是宏,而不是函数。它的原型定义在头文件 assert.h 中:void assert( int expression );宏 assert 经常用于在函数开始处检验传入参数的合法性,可以将其看作是异常处理的一种高级形式。assert 的作用是 先计算表达式 expression,然后判断:如果表达式值为假,那么它先向 stderr 打印错误信息,然后通过调用 abort 来终止程序运行。如果表达式值为真,继续运行后面的程序。注意:assert 只在 DEBUG 下生效,在调试结
2020-12-31 00:12:12 8860
原创 static 和 extern 的作用
问题:static 和 extern 修饰变量和函数时有什么作用?请举例说明。static简单来说,static 关键字有两个作用:限制变量的作用域设置变量的存储域具体来说,在不同的使用场景有不同的表现。(函数名也是变量)静态全局变量用 static 声明静态全局变量:限制本文件外使用static int a;定义全局变量时加一个 static 声明,该变量只限于被本文件引用,而不能被其他文件引用。静态全局变量和全局变量一样存放在静态区。静态局部变量使用 static 修饰局部
2020-12-30 23:46:11 1367
原创 【经典面试题】strlen 函数的实现
分析strlen 是 C 库函数,它的作用是计算字符串的长度。函数 strlen 的原型是:size_t strlen(const char *str);strlen 函数从字符串的开头位置依次向后计数,直到遇见 \0,然后返回计时器的值。最终统计的字符串长度不包括 \0。实现int strlen(const char* str){ assert(str != NULL); int len = 0; while((*str++) != '\0') ++len; return le
2020-12-30 22:27:01 672
原创 【经典面试题】strcpy 函数的实现
分析strcpy 是 C 库函数,它的作用是将一个字符串复制到另一个地址空间。函数 strcpy 的原型是:char* strcpy(char* des , const char* src);调用 strcpy 函数,将 src 所指向的字符串复制到 dest 所指向的地址空间,同时返回复制后的字符串。注意:des 和 src 所指内存区域不可以重叠,且 des 必须有足够的空间来容纳 src 的字符串,否则会造成缓冲溢出(buffer overflow)错误。实现#include <
2020-12-30 22:17:32 1168
原创 【经典面试题】strcmp 函数的实现
分析strcmp 是 C 库函数,strcmp 是 string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。函数 strcmp 的原型是:int strcmp(const char *s1,const char *s2)返回值:若 s1==s2,返回零;若 s1>s2,返回正数;若 s1<s2,返回负数。因此 strcmp 需要做的就是将两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止。
2020-12-30 21:53:15 1659
原创 【经典面试题】strcat 函数的实现
分析strcat 是 C 库函数,它的作用是连接两个字符串。函数 strcat 的原型是:char* strcat(char* des, char* src);调用 strcat 函数,将 src 所指向的字符串追加到 dest 所指向的字符串的结尾,同时返回连接后的字符串。注意:des 和 src 所指内存区域不可以重叠,且 des 必须有足够的空间来容纳 src 的字符串。实现#include <assert.h>#include <stdio.h>char
2020-12-30 21:46:30 1075
原创 我的2020——一颗红心,两手准备
今年做了什么Flag 验收看回 2019年总结,又啪啪打脸了。。。果然计划赶不上变化,以后立 Flag 还是要慎重! 编制并出版一本书 设计并发布一个网站平台 做一个电台节目 去菲律宾读语言学校进修英语 考个无人机驾驶证(极飞农业无人机操作员考试)先汇报一下:之前构思了好多遍,要写一本关于 Linux 和物联网方面的书,于是在 Gitee 上用小号折腾了一年,还是没搞定!(希望在 2021 年 Q1 结束这场战斗)不过倒是因为参与了《开源指北》的编写计划,算是共同协作出了一本电子书
2020-12-24 18:27:24 8647 3
原创 如果你知道去哪,全世界都会为你让路
每个人都有自己所热爱的东西,一旦目标确定下来,它将会迸发出源源不断的动力。我常常问自己:如果我只剩十年寿命,我要怎么度过?我一定会划掉哪些无关紧要的人生大事,全力以赴地追逐梦想。可我又怕十年太短,无法实现梦想。但你愿意为了它日以继夜地工作,直到它在你眼中是完美无瑕的。那其实并没有什么可害怕的,因为你已经知道自己要去哪儿了。如果一个人连自己感兴趣的事情都不肯为之努力的话,那又怎么可能期待生命的辉煌?拒绝诱惑,在充满危机和挑战的道路奋勇前行,嗯,这是正确的路。Just do it, I am h
2020-12-20 01:44:04 476 2
原创 Convert 命令与图像处理
Linux 中可以用 convert 命令对图像进行转换,比如图像的大小和格式等。convert 命令在 ImageMagick 内,因此只需要安装 ImageMagick 即可。sudo apt install imagemagick安装完成后,执行如下命令确认 convert 是否安装成功。convert --version缩放图片大小Convert 的 resize 子命令应该是在 ImageMagick 中使用较多的命令,它实现了图片任意大小的缩放,唯一需要掌握的就是如何使用它的一些
2020-11-11 16:32:35 2651
原创 什么是开源
引言:最近参加了 Gitee《开源指北》编写计划,领了第一章第一节 —— 什么是开源,挺有压力的,希望路过的各位同行评审一下,尽量保证内容正确,兼顾通俗易懂。谢谢啦!????开源的概念“开源”一词对应英文 Open Source,最初起源于软件开发领域,因此也称为“开放源代码”,对应的软件则称为开源软件(Open Source Software)。那是不是公开源代码的软件就是开源软件呢?实际上并不是。按照 OSI 组织(Open Source Initiative Association)的 OS
2020-11-05 12:57:26 7022 1
原创 【RED-V】运行 RT-Thread 操作系统
准备工作BSP目前 RT-Thread 官方仓库还没有提供 Sparkfun RED-V 开发板的 BSP 包,想尝试的小伙伴可以先克隆我的!仓库地址:https://github.com/luhuadong/rt-thread/tree/riscv/bsp/sparkfun-redv配置工具链编译工具依然使用 Freedom Studio 集成的 riscv64-unknown-elf-gcc 编译工具链。因此,在开始之前,您还需要安装 Freedom Studio 集成开发环境。特别地,如果
2020-11-04 17:20:43 1654
原创 【RED-V】驱动 I2C 显示 OLED 屏
打开 FreedomStudio 软件,依次在菜单栏中选择【File】->【New】->【Freedom E SDK Software Project】新建工程。在 Select Target 中选择“sifive-hifive1-revb”,在 Select Example Program 中选择“example-i2c”示例程序。接下来我们将修改这个程序。虽然 E310 只有一个 I2C 外设,但是 RED-V 板卡上引出了 3 组接口,包括 Arduino 插槽上的两组以及一个 Qwi
2020-11-04 16:34:11 1134 1
原创 【RED-V】驱动 PWM 实现呼吸灯
打开 FreedomStudio 软件,依次在菜单栏中选择【File】->【New】->【Freedom E SDK Software Project】新建工程。在 Select Target 中选择“sifive-hifive1-revb”,在 Select Example Program 中选择“example-pwm”示例程序。接下来我们将修改这个程序。由于板载的 LED 连接的 D13(GPIO_5)引脚没有 PWM 功能,因此本次实验使用具有 PWM 输出功能的 D9(GPIO_1
2020-11-04 15:56:39 1436
原创 【RED-V】开发环境搭建及快速入门
开发工具介绍RED-V 的主控芯片是 SiFive 的 FE310,因此可以使用 SiFive 提供的开发工具进行开发。网址:https://www.sifive.com/software因此,RED-V 支持多种开发方式,常见的开发方式是使用 SiFive 官方支持的 Freedom E SDK 和 Freedom Studio 工具。Freedom E SDK 包含多个板卡的板级支持包(BSP)、测试程序和示例程序。仓库地址:https://github.com/sifive/freedom-e
2020-11-04 14:11:10 3409 2
原创 【RED-V】基于 RISC-V 架构的开源开发板
板卡介绍RED-V RedBoard 是 SparkFun 出品的开源开发板,主控芯片是基于 RISC-V 架构的 SoC SiFive FE310。FE310 是全球第一款基于 RISC-V 架构的 32 位商用 SoC,采用了 180nm 的工艺,最大工作频率可以到 320MHz,性能大致相当于 Arm Cortex-M3。RED-V RedBoard 采用了大家熟悉的 Arduino UNO R3 规格,板上包括 SiFive Freedom E310 内核、32MB QSPI 闪存、NXP K
2020-11-04 09:59:15 1904
原创 分享两个决策方法WCCA和WADM
前几天,朋友给我推荐 MJ DeMarco 的《The Millionaire Fastlane》,里面提到两个帮助我们更好地作出决策的方法,非常实用,分享给大家!WCCA(最坏情况后果分析,Worst Case Consequence Analysis)WADM(加权平均决策矩阵,The Weighted Average Decision Matrix)相信大家在日常工作、学习、生活中常常面临选择,比如该选哪份工作?该去哪个城市发展?要不要复读?该选哪个专业?要不要买房?在哪里买房?要不要和这个
2020-10-09 17:13:23 6241 3
原创 /proc/config.gz 是什么
简述Linux 可以在内核本身存储用于内核构建的 gzip 内核配置文件副本,并通过 /proc/config.gz 提供给用户。也就是说,/proc/config.gz 就是当前的 Linux 内核配置文件,并且是用 gzip 格式压缩过的。但不是所有的 Linux 发行版都有 /proc/config.gz 文件,大部分常见的 Linux 发行版就没有提供,比如 Ubuntu。只有当内核配置 CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC 为 y,才会在 /proc 中
2020-10-03 10:52:20 8295
原创 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台
我们在上一节《【ODYSSEY-STM32MP157C】驱动 UART 读取传感器数据》 已经成功读取到 PMS5003ST 传感器的数据,本节我们将学习如何将设备接入阿里云 IoT 平台,并上报数据到云端。准备材料阿里云:阿里云物联网平台账号Seeed:ODYSSEY-STM32MP157C 开发板攀藤:PMS5003ST 传感器创建产品与设备登录阿里云物联网平台,进入“控制台”,选择“设备管理” -> “产品”页面,创建产品。添加自定义功能,我在这里共添加了 6 个属性,分别
2020-10-02 15:05:46 913
原创 【ODYSSEY-STM32MP157C】驱动 UART 读取传感器数据
我们在上一节《【ODYSSEY-STM32MP157C】驱动 GPIO 实现呼吸灯》 已经驱动 GPIO 实现呼吸灯功能,本节我们将在 Linux 上操作 STM32MP157C 的 UART2 串口与传感器进行通信,并将传感器数据打印出来。准备材料Seeed:ODYSSEY-STM32MP157C 开发板攀藤:PMS5003ST 传感器PMS5003ST 简介PMS5003ST 是攀藤科技的一款空气质量传感器,可以同时监测空气中颗粒物浓度(PM1.0、PM2.5、PM10)、甲醛浓度和环境
2020-10-02 11:48:42 1831 1
原创 【ODYSSEY-STM32MP157C】驱动 GPIO 实现呼吸灯
Grove 接口Grove 是一种规范的嵌入式开发套件连接接口定义。什么是 Grove 系统Grove 是一个模块化的标准连接器原型系统。Grove 采用积木式组装电子技术。与基于跳线或焊接的系统相比,连接、试验和构建更容易,并简化了学习系统。Grove 系统允许你构建真正的系统。因而它需要一些学习和专业知识才能正确地将物件联接起来。Grove 系统由基本处理单元(树干)和具有标准化连接器的各种模块(树枝)组成。基本单元(通常为微处理器)允许从 Grove 模块轻松连接任何输入或输出。每个 Gro
2020-09-26 19:01:43 2701 4
原创 【ODYSSEY-STM32MP157C】环境搭建与系统运行
在上一篇《【ODYSSEY-STM32MP157C】硬件平台及学习资源》中,我们大体了解了 ODYSSEY-STM32MP157C 开发板的情况。除了核心板上的 eMMC,载板上还提供了 SD 卡插槽,通过载板上的滑动开关选择从 eMMC 启动或者从 SD 卡启动。因此开发者可以像树莓派一样,将 Linux 系统镜像烧写到 SD 卡中,即可开启本趟学习之旅。准备材料发车之前,请各位旅客对照如下清单并准备号材料。 ODYSSEY – STM32MP157C 开发板一个 Wi-Fi 网络 4GB 以
2020-09-25 17:08:08 1706 2
原创 【ODYSSEY-STM32MP157C】硬件平台及学习资源
STM32MP1ST 于 2019 年正式发表首款 MPU 产品线系列 STM32MP1,希望延续过去 STM32 MCU 在全球 MCU 市场的成功经验,进一步朝 MPU 市场迈进。作为能够支持轻松开发更广泛应用的通用微处理器产品线,STM32MP1 系列基于单核或双核 Cortex-A7 与 Cortex-M4 组成的异构架构,加强了支持多应用和灵活应用的能力,可以随时实现最佳性能和功率数据。Cortex-A7 内核提供对开源操作系统(Linux/Android)的支持,而 Cortex-M4 内核可
2020-09-24 13:32:54 2135 2
原创 华为联合教指委发布《物联网实践系列教材》
华为物联网实践系列教材发布会2020年9月10日,华为在杭州举行以“智联万物 悦启新程”为主题的教材发布会。据称,这套教材由高校资深教师、华为资深研发专家、人邮出版社资深编辑按 1:1:1 配比进行投入。由教育部高等学校计算机类专业教学指导委员会(简称“教指委”)主导推进的物联网开发实践系列教材,目的是为近千所开设物联网相关专业的高校、近20万名物联网专业学生提供学习参考,协助高校培养出更多符合产业需求的物联网优秀人才。教材介绍该系列教材共包含 12 本图书:《物联网概论》《物联网操作系统原
2020-09-10 17:43:27 1685
原创 面向未来的安全实时操作系统 —— MS-RTOS
概述MS-RTOS(Micro Safe RTOS)是翼辉信息设计的一款面向未来的安全实时操作系统,主要面向小型物联网设备端的应用。其最大的特点是开创性地在没有 MMU 和资源受限的 MCU上也能支持多进程与动态装载技术。使得应用与系统能分离开发、独立升级。MS-RTOS 支持内核空间内存保护(应用程序通过 syscall 访问内核),使得内核有着非常高的安全性。MS-RTOS 在提供足够丰富功能的同时,保持了高效简洁的实现,对 ROM、RAM 消耗极低,特别适用于对硬件成本敏感、安全性要求特别高的产.
2020-09-10 00:08:01 1999
原创 制作 Kali Linux 随身 U 盘并实现持久化
制作 Kali Linux 随身 U 盘Kali Linux 的前身是 BackTrack Linux 发行版。Kali Linux 是一个基于 Debian 的 Linux 发行版,包括很多安全和取证方面的相关工具。它由 Offensive Security Ltd 维护和资助,最先由 Offensive Security 的 MatiAharoni 和 Devon Kearns 通过重写 Back Track 来完成。Back Track 是基于 Ubuntu 的一个 Linux 发行版。Kali
2020-08-27 15:50:44 11742 7
转载 35年老程序员个人谈:C语言时代行将落幕
这几天来,我(Eric Raymond)在思考那些正在挑战C语言的系统编程语言领袖地位的新潮语言,尤其是Go和Rust。思考的过程中,我意识到了一个让我震惊的事实——我有着35年的C语言经验。每周我都要写很多C代码,但是我已经记不清楚上一次我 创建一个新的C语言项目 是在什么时候了。如果你完全不认为这种情况令人震惊,那你很可能不是一个系统程序员。我知道有很多程序员使用更高级的语言工作。但是我把大部分时间都花在了深入打磨像NTPsec、 GPSD以及giflib这些东西上。熟练使用C语言在这几十年里一直就是
2020-08-16 16:28:26 920
原创 标准 sscanf 解析语法与数据解析
概述在C语言应用开发过程中,常常需要对字符串数据进行解析,这些字符串可能是从文件、键盘或者其他设备读入。比如与 AT 设备通信时,需要对 AT 设备发送过来的数据进行解析,从而获得我们想要的一些数据。然而,处理字符串却是一件很麻烦的事!幸运的是,我们有 sscanf() 函数。sscanf 可以认为是标准 C 库自带的 split string (字符串分割)函数,它强大的功能体现在对 format 的支持上。sscanf 函数说明在 stdio.h 中,提供了三个类似的函数,函数原型如下:int
2020-08-16 15:42:11 2044
原创 如何在网页中添加 GitHub Corners
首先在 http://tholman.com/github-corners/ 适合你的网页的样式。可以选择放在左上角还是右上角,底色选择黑色、青色、红色、蓝色、白色等等。然后复制代码,放到你的网页代码中。将 href="https://your-url" 替换为你的 GitHub 链接即可。<a href="https://your-url" class="github-corner" aria-label="View source on GitHub"> <svg widt
2020-07-18 16:42:22 959 1
原创 当攀藤 PM2.5 传感器遇上 RT-Thread
概述攀藤 PMS 系列传感器攀藤 PMS 系列传感器是基于激光散射原理的数字式通用颗粒物浓度传感器,可连续采集并计算单位体积内空气中不同粒径的悬浮颗粒物个数,即颗粒物浓度分布,进而换算成为质量浓度,并以通用数字接口形式输出。PMS 传感器可嵌入各种与空气中悬浮颗粒物浓度相关的仪器仪表或环境改善设备,为其提供及时准确的浓度数据,比如小米的空气净化器。PMS 系列包括很多款传感器,具体选型可以查看 http://www.plantower.com 页面。为了方便在 MCU 产品上应用 PMS 系列传.
2020-07-13 15:16:17 3898 2
FreeRTOS_ST_April_Training(北京麦克泰FreeRTOS培训课件)
2017-05-04
fsl-yocto-3.10.17_1.0.0.tar.gz
2017-04-18
一步一步使用STemWin 在STM32 上开发一个简单的应用
2017-03-14
POSIX标准文档
2017-03-07
96Boards 消费版(Low Cost Hardware Platform)说明书
2017-03-03
从零开始使用CubeMX创建以太网工程
2017-07-11
TCP&UDP测试工具 V1.02
2017-07-11
TCP/UDP Socket调试工具V2.3
2017-07-11
eGTouch_v2.5.5814.L-x.tar.gz
2017-06-29
GitHub 无法读取远程仓库,port 443: Connection refused
2022-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人