- 博客(85)
- 资源 (35)
- 收藏
- 关注

原创 FreeRTOS v10.1.0源码中文注释版
继上次开源了LwIP 1.4的源码后(有需求的同学点击这里获取),开源FreeRTOS 10.1.0的源码注释,请点击这里获取。包括freertos的任务调度、内存管理、信号量、事件组以及新增的任务通知都有详细的中文注解,相信会帮助大家更好的熟悉freertos的使用。同样觉得对你有帮助请给star以资鼓励。...
2018-12-06 09:06:53
4253
3

原创 [MCUKeys] 一个通用的、灵活的、可配置的、可移植的按键事件处理的实现
MCUKeys1 简介MCUKeys是一个简洁小巧可配置的、灵活的、通用的的按键检测程序,截至到目前为止它可以检测如下输入事件:按键按下按键抬起长按(时间可配置)连击(时间可配置)双击组合按键(可以实现以上五种状态)同时,所有的事件都支持注册回调函数,在事件发生时执行。如果当前系统希望只检测按键按下事件,则可以屏蔽其他所有事件,对于其他按键事件亦然。2 使用方法先定...
2018-10-31 15:00:26
1215

原创 LwIP 1.4.1中文注释源码
如下是我整理的LwIP1.4.1中文注释版,基本上所有的函数都带了详细的中文注释,适合入门LwIP的同学使用。清点击这里获取,或者直接访问我的GitHub链接:https://github.com/xupenghu/LwIP获取。 请大家clone或者fork的时候给个star鼓励哦!...
2018-10-29 20:40:22
2450
2
原创 合宙Air780e C-SDK开发
AirXXXE系列模组,是合宙通信基于移芯EC618平台设计研发的新款4G Cat.1模组。Air780e的资料点击这里打开。一代 IPEX 天线连接器(选配)4G 弹簧天线一个下载/调试串口,两个通用串口IO 口默认电平 3.3V (1.8V 可调)支持 USB 5V 直接供电自弹式 Micro SIM 卡座1 个电源 LED 指示灯,1 个网络指示灯标准 2.54mm 邮票孔,兼容排针1 路音频输出(内置音频 codec,无音频功放)
2023-05-13 19:11:03
1755
1
原创 【RDC2022纪念板】RT-Smart D1s上手
开发板使用了全志科技的D1s芯片,全志RISC-V D1s芯片是一款基于RISC-V架构的低功耗、高性能的嵌入式处理器,该芯片主要用于智能家居、智能音箱、智能门锁、智能监控等物联网应用领域,全志RISC-V D1s芯片的主要技术特点包括:处理器:采用RISC-V架构,主频高达1.5GHz,性能强劲。显卡:集成Mali400 MP2 GPU,支持OpenGL ES 2.0/1.1、OpenVG 1.1等图形加速技术,能够提供流畅的图像处理和游戏体验。
2023-05-05 15:15:10
1018
原创 【BLE MESH】PB-ADV入网详解
设备在一个mesh网络中通讯,需要获取该mesh网络的等密钥,才能加解密mesh数据包,入网的目的其实就是为了获取这些密钥。MESH协议规定有两种入网方式这两种入网方式只是承载层不一样,一个是通过BLE GATT层承载,一个是通过广播承载。但是其入网的流程是一致的。一般来讲更推荐使用PB-ADV方式入网,因为mesh协议的数据传输层也是adv,但是对于一些像手机、平板电脑等设备,其是不支持adv通道的ble mesh的,所以通常使用PB-GATT入网。
2022-11-05 19:45:13
499
原创 【BLE Mesh】ble mesh 简介
2014年CSR将自己的私有BLE MESH技术捐献给蓝牙技术联盟(Bluetooth SIG)用来加速制定统一的BLE MESH物联网协议,2018年7月18日SIG正式推出蓝牙MESH标准,即SIG MESH。目前SIG MESH还是基于BLE 4.x,暂不支持BLE 5.0来传输SIG MESH协议。
2022-11-05 16:14:29
1342
原创 【御芯微WIoTa®自组网协议开发套件试用体验】rt-thread bsp软件包制作
收到ucchip的wiota套件也有一段时间了,经过这段时间的摸索,大概搞清楚了软件开发环境的安装、编译、二次开发流程。sdk没有按照rt-thread的标准组织,代码形式比较乱没有支持msh组件,不能在控制台输入,调试不方便sdk默认使用AT固件,不方便二次开发rt-thread主线没有ucchip的bsp基于以上痛点,决定将ucchip的三款模组制作成为rt-thread的标准bsp。...
2022-07-15 22:00:25
460
原创 【御芯微WIoTa®自组网协议开发套件试用体验】二次开发概述
UCM200和UCM202都是一颗内置了MCU和射频前端的模组,他们都支持二次开发。但是ucchip将射频部分都封装起来以lib库的形式提供给用户开发,在一定程度上会使得开发不那么方便,也不能完全释放射频的性能。但是基础的外设都是开放的,对于一些常见的场合,客户完全可以使用一个模组来完成全部的项目开发。源码地址如下:之前的文章,已经详细介绍了IDE的安装和使用,这里不再过多赘述。下载完源码后,找到根目录下的rtconfig.py文件,确定这里的路径和你的IDE编译工具链的位置是否一致,如果不一致则需要更改。
2022-07-12 22:26:57
354
原创 UCM108E开箱&&二次开发环境搭建
御芯微UCM108E开发板,是搭载自研UCM108E模组的全功能开发板,可用于有MCU和GNSS定位需求的物联网方案开发。该模组集RISC-V MCU和GPS/北斗三号导航定位为一体,内部集成32位RISC-V处理器、32位浮点运算单元(FPU)、PMU、DCDC、PLL、温度传感器、大容量闪存等,外设支持UART、SPI、PWM、GPIO、I2C,ADC和DAC等,具有低成本、高性能、小尺寸的特点。如上图所示,开发板的设计非常精简,主要由UCM108E模组、烧录口和天线组成,并且将所有的IO都外接方便测试
2022-06-13 09:55:13
1423
原创 腾讯云物联网-网关设备体验
腾讯云物联网-网关/子设备体验网关设备简介对于 BLE、Zigbee 和485等不具备直接访问网络能力的设备,需要先接入网关,然后通过网关代理,间接实现设备接入腾讯物联网开发平台 IoT Explorer,具体流程框架图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-laOq4Nby-1650454646545)(https://main.qcloudimg.com/raw/f419fff3725378c770b7264ddb93b170.svg)]那么对于一个网
2022-04-20 19:38:18
2806
原创 DockerFile
DockerFile用来构建docker的镜像文件,可以理解为命令参数脚本。构建步骤编写一个DockerFile文件Docker build构建成为一个镜像docke run运行镜像docker push发布镜像,可以发布到docker hub或者腾讯云、阿里云仓库官方的Centos DockerFile示例路径请点击这里获取可以看到centos的官方镜像就是一个压缩包,我们后面制作镜像的时候可以以此为基础来构建更多更复杂的镜像。DockerFile基础知识每条指令都是大
2021-09-12 11:24:29
137
原创 Docker容器数据卷
容器数据卷什么是容器数据卷docker是要将应用和环境打包成一个镜像这样,数据就不应该在容器中,否则容器删除,数据就会丢失,同时,如果将数据放到容器内,做镜像打包的时候镜像就会非常大,这和docker追求的快背道而驰,同时如果有多个容器都要访问同一个数据,那么不可能将这些数据拷贝到每个容器内。故容器之间要有一个数据共享技术在Docker容器中产生的数据,同步到本地,这就是卷技术本质上是一个目录挂载,将容器内的目录挂载到虚拟机上目的:容器的持久化和同步操作容器间可以数据共享使用数据卷直接
2021-09-12 11:20:45
149
原创 docker可视化
可视化portainer[root@VM-87-165-centos ~]# docker run -d -p 8088:9000 \--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainerUnable to find image 'portainer/portainer:latest' locallylatest: Pulling from porta
2021-09-12 11:19:09
124
原创 docker镜像的理解
Docker底层原理镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。所有的应用,直接打包成为一个docker镜像,就可以直接跑起来。如何得到镜像:从镜像仓库下载(类似GitHub)从同事、合作伙伴那里得到自己制作镜像(docker file)底层原理Docker是怎么工作的?Docker是一个Client-Serve结构的系统,Docker的守护进程在主机上,通过
2021-09-12 11:16:59
258
原创 Docker 常用命令
Docker 常用命令帮助命令docker version # 显示docker的版本信息docker info # 显示docker的系统信息 包括镜像和容器的数量docker --help # 帮助命令可以直接从官网文档上面获取到所有的命令详情,是一个不错的学习途径。镜像命令docker images # 查看本地主机上的镜像[root@VM-87-165-centos ~]# docker imagesREPOSITORY TAG IMAGE
2021-09-12 11:15:56
153
原创 Dcoker安装
Docker安装docker的基本组成明确几个概念镜像(image):docker镜像好比一个模板,可以通过这个模板来创建容器(container),一个镜像可以创建多个容器。容器(container):类似Python中通过Class创建的实例,Object;容器可以理解为一个简易的系统仓库(repository):存放镜像的地方,分为共有仓库和私有仓库Docker Hub:国外的,类似GitHub阿里云、腾讯云等等Centos安装docker卸载旧的
2021-09-08 09:34:17
135
原创 Docker历史
Docker概述Docker为什么会出现一款产品,开发和线上是两套不同的环境,应用环境费时费力,而且容易在交付的时候出错。我们经常听到的一句话便是:“在我的机器上运行没问题啊,怎么到你那里就出问题了?”。说的就是环境不同导致的问题。对于我们嵌入式开发领域来讲,不同的芯片,不同的交叉编译工具链需要不同的配置,当所有的工具链和配置都集中在同一个开发环境中时,可能会出现一些奇奇怪怪的问题。比如,我遇到的有些工程是需要python2.7来构建的,有些则需要python3来构建,每次开发不同的芯片,都要重新配置
2021-09-08 09:30:27
136
原创 Ubuntu使用多个gcc版本
背景由于项目之前使用低版本gcc编译,现在高版本的gcc编译会报错,所以需要Ubuntu安装多个gcc版本来适应不同的编译情况。过程首先安装低版本的gcc,使用如下命令:$ sudo apt-get install -y gcc-7 g++-7这个过程可能比较久,耐心等待安装完成。查看当前系统的gcc版本$ ls /usr/bin/gcc*/usr/bin/gcc /usr/bin/gcc-9 /usr/bin/gcc-ar-7 /usr/bin/gcc-nm
2021-08-06 09:35:00
1488
原创 VSCode&&CMake开发C/C++
VSCode&&CMake开发C/C++前言通过这篇文章,你可以使用vscode开发调试c/c++。一个C/C++开发环境,包含文本编辑器***、C/C++编译器以及C/C++调试器*,如果你使用win开发环境,首选还是宇宙最强IDE visual studio。集文本编辑器、编译器、调试器于一体,超级好用。但是还要撰写本文就是告诉你,除了visual studio,我们还有其他的选择,选择vscode和cmake来开发c/c++,这样我们过度到Linux和mac平台时,也可以使用这套
2021-07-03 18:19:40
655
8
原创 rt-thread 移植BSP驱动 uart篇
rt-thread 移植BSP驱动 uart篇简介uart驱动作为常用外设之一,对rt-thread的msh组件使用和一些外接uart模块来说必不可少,这篇文章将介绍如何基于rt-thread的serial框架来编写drv_uart.c和drv_uart.h文件,直到最后一步步实现msh组件的使用。阅读本篇文章前,确定你已经熟悉了rt-thread的使用以及在一个stm32或者其他移植过BSP的开发板上跑起来了rt-thread,并且你已经熟悉了UART设备驱动框架的使用方法。uart作为一种常用的
2021-05-19 14:12:25
1493
2
原创 RT-Thread 软件包制作及发布流程
前言RT-Thread是一个嵌入式实时多线程操作系统,系统完全开源,它不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。我们可以结合rtthread提供的组件和服务,制作软件包,丰富rt-thread的软件生态。让更多的开发者做到开箱即用,不用重复造轮子。必备知识熟悉rt-thread了解Kconfig了解Env开发工具了解Scons构建工具制作流程为什么你做好的软件包能被其他开发者使用
2021-03-27 14:03:01
1571
原创 eclipse编译C工程出现超多undefined 的错误解决办法
问题描述IDE是第三方公司根据eclipse魔改的,但是内核还是eclipse。运行官方给的例程编译链接下载都正常。但是自己根据此工程新建了一些文件夹并加入了.c .h文件,再次编译的时候出现大面积的错误,提示函数没有被定义。觉得很奇怪,因为这些函数都是被定义且实现的,直接点击也可以跳转过去。部分错误如下:14:05:56 **** Incremental Build of configuration obj for project CentPeri ****make -j8 all Memory
2021-03-25 14:18:02
2172
原创 沁恒CH573开发板上手
沁恒CH573开发板评测概述CH573是集成BLE无线通讯的32位RISC-V内核微控制器。片上集成低功耗蓝牙BLE通讯模块、全速USB主机和设备控制器及收发器、SPI、4个串口、ADC、触摸按键检测模块、RTC等丰富的外设资源。系统框图芯片特点32位RISC处理器WCH RISC-V3A支持RV32 IMAC指令集,支持单周期乘法和硬件除法内置18K SRAM,512K Flash ROM,支持ICP、ISP和IAP,支持OTA无线升级集成2.4GHz RF收发器和基带及链路控制,提高
2021-03-17 11:36:49
7541
9
原创 RT-Thread 传感器软件包归类
RT-Thread 传感器软件包归类简介介绍了目前已经适配了rtthread的sensor框架的软件包,注意:有些传感器是即支持IIC也支持SPI,但是目前适配sensor框架只用了一种通讯接口。传感器软件包列表传感器型号类型通讯接口厂家备注AHT10温湿度传感器IICASAIRSMD封装可用于回流焊,精度一般AP3216C接近感应与光照强度传感器IICKingbright集成光传感器,距离传感器,红外LED的芯片BH1750光照强度传感器I
2021-03-11 19:53:35
1090
2
原创 STM32WB55 蓝牙协议栈运行流程解析
STM32WB55 蓝牙协议栈运行流程解析简介STM32WB55是ST公司近期推出的一颗双核(M0+M4)无线MCU,主要应用在BLE领域,同时也可以运行thread和zigbee等无线协议栈。协议支持及两颗MCU的关系如下图所示:CPU2负责无线协议栈的处理,CPU1负责用户程序的实现和其他常规片内外设的操作。本文主要分析BLE协议栈的实现过程。BLE固件的实现有两种方式,一种是全部协议栈都由CPU2来跑,对应固件是:stm32wb5x_BLE_Stack_fw.bin;CPU1只负责profi
2021-03-01 09:49:13
2713
原创 stm32wb55 基于rtt的ble sample制作过程
stm32wb55 基于rtt的ble sample制作过程准备活动硬件stm32wb55 nucleo开发板stm32wb55 dangle软件rtthread stm32wb55 bspst官方 stm32wb固件包开发环境keil MDKvscodertthread env概述本文的目的是将ST官方的STM32WB55 固件包里的BLE sample移植到RT-Thread,最终变为rtt生态的一个软件包,让更多开发者都可以直接做基于rtt开箱即用。移植前准备
2021-02-24 19:42:28
778
1
原创 INA226调试及使用笔记
INA226简介INA226 是一款分流/功率监视器, 具有 I2C™或SMBUS 兼容接口。 该器件 监视分流压降和总线电源电压。 可编程校准值、 转换时间和取平均值功能与内部乘法器相结合, 可实现电流值(单位为安培) 和功率值(单位为瓦) 的直接读取。INA226 可在 0V 至 36V 的共模总线电压范围内感测电流, 与电源电压无关。 该器件由一个 2.7V 至 5.5V 的单电源供电, 电源电流典型值为 330μA。 该器件的额定工作温度范围为 –40°C 至 125°C, I2C 兼容接口上
2021-02-22 10:08:12
8799
4
原创 INA260调试及使用笔记
INA260简介INA260是一款数字输出电流、功率和电压检测计,具有一个集成高精度分流电阻的I2C和SMBus兼容接口。该器件支持高精度电流和功率测量并在独立于电源电压的共模电压范围(0V 至 36V)实现过流检测。该器件是一款双向、低侧/高侧分流监测计,可测量流经内部电流感测电阻的电流。集成的精密电流感测电阻可使器件获得校准级别的测量精度以及超低温漂,并确保始终可实施针对感测电阻而优化的 Kelvin 布局。INA260 在 同一 I2C 兼容接口中具有多达 16 个可编程地址。数字接口允许通过编
2021-02-22 10:07:02
1858
原创 跑马拉松的一些感悟
跑马拉松的一些感悟初衷最初开始想跑步是奔着减肥的目标去的,以前都是一遍遍的喊口号,从没有实践过,后来有一次上称147斤,心态有电崩,就下定了减肥的决心。然后开始跑步。跑步过程刚开始跑3公里,很吃力,坚持了2周后渐渐适应。三公里陆陆续续跑了一个月,也是三天打鱼两天晒网的状态。这个月的跑量也只有不到40公里。第二个月开始跑5公里,头几次特别吃力,每次跑完都累的不行,但是次数也提上来了,这个月跑了15次 80公里。第三个月还是跑5公里,但是已经不那么吃力了,中间跑了自己第一次15公里,跑完累成狗,走
2020-12-30 09:32:41
874
1
原创 ART-PI开发板蓝牙配网流程分析
准备工作art-pi开发板一块Android/iOS手机一部nrf sniffer抓包工具一个完整配对流程体验开发板默认烧录的出厂固件自带蓝牙配网功能,如果烧录了其他工程,则需要在rt-thread studio 上重新烧录art-pi_factory工程。上电后开发板蓝牙模组会自动广播,设备名称是ART-PI。手机(手机需要开启蓝牙,注:部分华为/荣耀手机需要开启定位功能)打开微信搜索WiFi配网助手,选择设备为ART-PI,如下图所示:则表示手机成功搜索到了开发板的广播包。
2020-12-09 19:38:12
1578
原创 STVP下载STM8单片机提示Verify error at address 0xxxxx的问题解决
问题使用stvp下载stm8l15xC8芯片时,每次校验都不通过,错误如下:问题分析校验失败的区域是STM8的EEPROM区域,如果单独点击下载flash区域和EEPROM区域,程序都是可以烧录的,最后再烧录options区域。这样子的流程没问题,但是如果点击一键烧录全部区域就会出现这样的问题。所以怀疑出问题id原因是flash区域烧录完成后,MCU会直接跑起来,然后再烧录EEPROM区域的时候MCU程序正好也在使用EEPROM或者flash,然后就会造成校验失败。问题解决按照上面的四路分析,
2020-11-28 14:44:45
1675
原创 pip使用国内源
前言由于国内的网络环境大家都懂的,但是很多python包服务器都在境外,所以安装的时候各种报错,最好的方案是搭个梯子,但不是人人都有条件,所以找了个折中的方案,使用国内的源来替换默认源,提高下载速度。临时使用临时使用只针对本次安装包时生效,如果不是经常安装更新包,这种方法是最推荐的,简单省事,用法如下:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package-i 后面加的是镜像源的地址,空格后面跟的是包名永久修改
2020-11-23 19:58:55
423
原创 使用NRF52xx sniffer抓取BLE包
准备知识为什么需要抓包抓取BLE数据包就和我们做程序开发中打印log功能是一样的,我们可以方便快捷的获取程序运行状态以及出错后定位bug位置,无线通讯过程中的数据包都是通过电磁波以空气为介质进行传播的。所以,我们抓取空气中的数据包,对BLE开发来说,完全是0感知,不会有传统程序开发过程中log打印的太多影响程序的运行效率这样的顾虑。软硬件准备NRF52832/52840硬件一个wiresharksnifferpython 2.7软件安装wireshark安装wireshark是一款免
2020-11-15 16:37:47
3387
4
原创 使用Android手机抓取蓝牙HCI包
准备工作一台安卓手机(应该不需要root权限)wiresharkfontlinelog文件获取打开HCI侦听选项在Android手机 设置->开发人员选项中开启USB调试并打开HCI侦听选项,如下图所示:使用手机蓝牙和设备通讯使用手机和蓝牙设备正常调试,这个时候的数据包会被记录到btsnoop_hci.log日志文件中,一般情况下在手机存储的根目录下将该文件拷贝到PC上就可以使用专用软件分析了log文件分析这里介绍两个HCI log分析软件wireshark
2020-11-15 16:35:31
6676
原创 STM32WB-硬件介绍
1 系统和存储1.1 系统总览STM32使用双核架构,一个cortex-m4核负责app程序开发,一个cortex-m0核负责射频协议栈,还有一个radio子系统负责RF部分。1.2 STM32WB总线架构如下图所示,基本的外设都被CPU1域,也就是cortex-m4内核访问,CPU1和CPU2通过SRAM2通讯。1.3 总线矩阵1.4 存储分布1.5 STM32WB闪存特点共享闪存的一部分是为RF射频子系统CPU2保护的,为了安全区域,主机CPU1无法访问。使用ART加
2020-09-30 15:02:50
4401
原创 vscode Flutter真机调试
1 为什么要真机调试我们做app开发的时候,一般都是先在虚拟机上完成功能开发,等所有交互逻辑和业务逻辑基本调试ok后,才想着在真机上验证。或者我们需要调试一些和硬件相关的业务时,也必须要真机调试,比如闪光灯、相机、蓝牙等等。2 vscode Flutter真机调试步骤2.1 手机打开USB调试首先确定手机端打开了USB调试功能,将手机通过USB线连接电脑,如果一切正常,则在PC设备管理器中应该能找到Android USB devices,如下图所示:如果找不到usb device的驱动,则首先
2020-08-20 10:22:50
6336
原创 MLX90632介绍及调试总结
简介MLX90632 是一款微型 SMD 温度计 IC,可实现高精度非接触式温度测量,在热特性动态变化的环境以及空间受限的情况下作用尤为显著。特性和优势高温环境下精准稳定的工作采用 3mm x 3mm x 1mm DFN 封装,无需采用体积庞大的 TO 罐封装消费级:测量物体温度为 -20 °C 至 200 °C,精度±1 ℃;医疗级:测量物体温度为-20 °C 至 100 °C,人体温度测量精度高达±0.2 °C使用 I2C 数字接口进行出厂校准,50° 的视场角工作温度范围: -20 °
2020-07-22 20:00:24
1957
原创 ML302 shell使用方法
ML302 shell使用方法引言首先感谢letter shell作者开源了简单好用的shell工具,详情可以访问作者的GitHub获取。其次感谢rt-thread团队的dbg着色支持,更多rtthread的资料,请访问官网获取。使用1 需要串口打印log信息在需要log打印的*.c文件头部包含dbg头文件,如下所示:#define DBG_TAG "MAIN"#define D...
2020-04-28 13:50:02
1293
原创 中移物联ML302开发板上手体验
开始中移物联网的ML302开发板是支持4G Cat.1网络的开发板,对于Cat.1这里就不再赘述,详细可以网上了解一下。接下来介绍中移物联网的ML302开发板以及具体的上手步骤,给那些刚拿到开发板的同学一个参考,少走弯路。开发板整体如下图所示,我收到的是LET_KIT_V002版本的开发板,开发板模组里默认用的是AT固件。AT指令模式开发体验收到开发板后,PC端首先需要安装ML302的...
2020-04-11 09:37:36
7731
5
FM33LC0xxx系列MCU之FreeRtos DeepSleep参考例程.zip
2021-05-29
MSP430AFE253资料(版本:v2.0).rar
2020-03-26
MSP430 FET Pro v5.6
2020-03-24
MH-100X使用说明.pdf
2019-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人