- 博客(38)
- 资源 (9)
- 收藏
- 关注
原创 好像一起创作这样一部关于科学史的剧作
本剧以“人类认识世界的旅程”为核心主题,通过七个历史场景展现认知范式的转变。每个场景包含真实历史人物与虚构普通人的互动,用具体科技事件折射时代精神。
2025-12-17 14:13:35
476
原创 一个Modbus-TCP传感器数据传输方案
地址内容数据类型说明40001时间戳高16位uint16采集时间的高位40002时间戳低16位uint16采集时间的低位40003包控制信息uint16比特位定义见下表40004传感器总数uint16实际传感器数量(1-200)比特15-8: 保留比特7-4: 总包数 (固定为5)比特3-0: 当前包序号 (0-4)事务标识符: 0x0001协议标识符: 0x0000长度: 0x0006单元标识符: 0x01功能码: 0x03 (读保持寄存器)
2025-10-19 16:13:20
460
2
原创 FreeMODBUS在STM32F407VGT6 + LAN8720 + LWIP基础上的移植指南
本文介绍了如何将FreeMODBUS协议栈移植到STM32F407VGT6平台,结合LAN8720以太网芯片和LWIP协议栈实现Modbus TCP通信。主要内容包括:1)获取FreeMODBUS源码并设置工程目录结构;2)关键端口文件的实现,包括事件处理、TCP通信接口等;3)详细给出了porttcp.c、portevent.c等核心文件的代码实现,处理TCP连接、数据收发等;4)说明了Modbus TCP模式下不需要定时器和串口功能。移植过程涉及FreeRTOS任务管理、LWIP协议栈集成等关键技术点,
2025-09-03 01:13:14
449
原创 基于 “测试号 + 本地Mock Server”方案的极其详细的初期开发搭建步骤
本文详细介绍了如何搭建本地Mock WebSocket服务器和小程序测试号开发环境。
2025-08-29 12:01:05
935
原创 微信小程序对接EdgeX Foundry详细指南
微信小程序对接EdgeX Foundry需通过服务器中转,主要有两种方法:1) Nginx反向代理,配置HTTPS和CORS支持;2) Node.js API网关,提供更灵活的数据处理和身份验证。服务器端需处理HTTPS请求并转发至EdgeX API。小程序端需封装网络请求模块,调用服务器API获取设备数据或发送控制命令。开发者需确保域名备案并合理设计API接口,同时注意数据安全和性能优化。
2025-08-28 19:17:42
998
原创 STM32F407与LAN8720A以太网通信实现指南
本文介绍了STM32F407与LAN8720A-CP-TR PHY芯片实现以太网通信的完整方案。详细说明了硬件连接(RMII接口各引脚对应关系)、软件配置步骤(包括STM32CubeMX设置和关键代码示例),并提供了初始化PHY、配置以太网和LWIP协议栈的具体实现方法。文中还包含重要参考资料链接、调试技巧和常见问题解决方案,为开发者提供了一套完整的以太网通信实现指南。
2025-08-28 16:44:19
428
原创 EdgeX Foundry最新LTS版搭建与开发指南
EdgeX Foundry 3.1 "Napa"是Linux基金会管理的开源边缘数据平台LTS版本,提供两年社区支持。该版本增强了平台配置,新增文件URI远程加载、核心数据保留和记录重播服务等功能。通过Docker可快速部署,支持自定义设备服务和应用服务开发,方便连接专属设备和处理数据。3.1版本特别适合边缘计算场景,可利用其记录重播服务进行测试验证,通过URI统一管理配置,优化边缘存储策略。建议结合官方文档,从理解架构入手循序渐进开发。
2025-08-28 16:36:40
1099
原创 LoRa 网关组网方案(二)
实际部署前需进行频谱扫描,选择干扰最小的频段,并根据距离要求调整SF和带宽参数。现有需求:网关每6秒接收不同节点的数据,使用SX1262芯片。数据(NetID=0xAABB, DevAddr=0x01)数据(NetID=0xAABB, DevAddr=0x02)区域1: 433.0MHz/0xAABB。区域2: 433.2MHz/0xCCDD。区域3: 433.4MHz/0xEEFF。记录DevAddr=0x01。记录DevAddr=0x02。:网络ID + 信道分配。
2025-08-20 22:28:37
852
原创 LoRa 网关与节点组网方案
多网络支持:网关可以监听多个不同的LoRa网络配置节点识别:每个数据包包含节点ID和网络ID干扰避免:通过频率、时间和参数分离减少网络间干扰灵活配置:可以轻松添加新的网络配置通过这种方式,你可以构建一个能够接收多个不同网络节点数据的网关系统,每个节点可以配置为属于特定的网络,从而避免不同网络间的干扰。
2025-08-20 22:24:51
468
原创 物联网云平台选型与接入工作量分析
对于一个有经验的团队,从零开始到完成一个可用的Demo,预计需要1-2人月的开发工作量。其中设备端开发是时间和不确定性的主要来源。建议:先从腾讯云开始尝试,利用其小程序生态优势减少集成难度。精确定义物模型,这是所有开发的基础。充分利用平台服务,如设备影子、规则引擎,它们能帮你省去大量自研底层架构的工作。分阶段开发:先实现最基本的功能(设备连接、数据上报、小程序控制),再逐步增加历史数据、告警、用户管理等高级功能。希望这份详细的说明能帮助您更好地评估项目并做出决策!
2025-08-20 12:08:13
818
原创 RadioIrqProcess函数详细分析与流程图
函数是SX126x LoRa模块的中断处理核心函数,负责检测和处理所有来自LoRa模块的中断事件。该函数通过轮询方式检查DIO引脚状态,而不是使用中断驱动方式。
2025-08-19 21:34:15
689
原创 实现LoRa通信与低功耗流程(无SPI中断)
在// 系统状态SYS_STOP_MODE, // 系统处于停止模式SYS_READING_SENSOR, // 正在读取传感器SYS_SENDING_DATA, // 正在发送数据SYS_WAITING_RESPONSE, // 等待响应SYS_PROCESSING_RESPONSE // 处理响应// 存储传感器数据系统启动后初始化并进入Stop模式Alarm A中断触发,读取传感器数据并再次进入Stop模式Alarm B中断触发,唤醒系统并开始发送数据。
2025-08-19 21:23:30
390
原创 STM32L051同时处理Alarm A和Alarm B中断
当同时启用Alarm A和Alarm B时,需要在中断处理程序中准确判断是哪个闹钟触发了中断。
2025-08-15 22:08:43
1337
原创 STM32L051之RTC Wakeup完整流程与代码实现
通过以上修改,系统应该能正确进入Stop模式,并在10秒后被RTC Wakeup定时器唤醒。唤醒后会重新初始化系统时钟,确保后续程序正常运行。1. 配置Wakeup定时器(10秒)2. 进入Stop模式。3. 10秒后触发中断。5. 进入中断服务程序。7. 调用唤醒处理函数。
2025-08-15 15:01:55
835
原创 STM32L051 RTC闹钟配置详解
通过此配置,系统将在Stop模式下消耗约1μA电流,每30秒唤醒一次执行任务,实现超低功耗运行。退出低功耗模式(若在Stop模式)调用Enter_Stop_Mode。RTC Alarm触发?发送RTC全局中断请求。执行RTC中断服务程序。在主循环中处理复杂任务。置位ALRAF标志位。
2025-08-15 10:26:51
790
原创 STM32L051C8T6两个低功耗模式对比
建议参考STM32L051x8数据手册(DS11195)和参考手册(RM0377)获取更详细的电气特性与寄存器配置细节。实际功耗受GPIO状态、未关闭外设影响。
2025-08-14 03:21:35
997
原创 STM32L051低功耗模式
以下是STM32L051 低功耗状态机详细模型图,包含所有模式转换条件和关键状态特征:fill:#333;fill:none;ry:5px;ry:5px;ry:0;ry:5px;rx:0;ry:0;rx:0;ry:0;Sleep_ModeStop_ModeRun_Mode:上电复位/唤醒复位Run_ModeNormal_Run主时钟(HSI/HSE/PLL)电压调节器Range1切换MSI/HSI分频电压调节器LPRun:MSI低速/HSI分频电压调节器Range2。
2025-08-12 08:26:08
949
原创 星型LoRa网络组网与通信的低功耗优化
此方案通过硬件级断电控制、智能随机延迟、会话保持机制三重优化,在保障通信可靠性的同时,将日均功耗控制在133μAh以下,完全满足三年电池寿命需求。实际部署建议:使用ER34615电池(19000mAh)可轻松超过3年寿命,且留有50%安全余量。按每天24次发送计算,CR2032电池(220mAh)理论寿命从4.5年提升至64年。入网流程仅在首次或异常时触发,日常通信无需重复入网。收到"会话失效"指令。连续3次未收到ACK。深度休眠 0.1μA。
2025-08-10 18:17:13
943
原创 星型LoRa网络组网与抗干扰解决方案
通过上述设计,即使10个星型网络在1km²内共存,也能实现>90%的数据可靠传输。实际部署建议先进行频谱扫描(使用SDR工具如HackRF),避开本地WiFi/蓝牙频段。确保节点仅与指定网关通信。
2025-08-10 17:01:09
1024
原创 Odrive的main.cpp control_loop_cb 函数深度解析
10kHz(基于Cortex-M4定时器中断):实现电机闭环控制的实时任务,包括:[电流环] → [速度环] → [位置环] → [安全监控] → [PWM更新]
2025-02-26 01:39:43
1082
原创 Odrive Sensorless Estimator 分析 (sensorless_estimator.cpp)
文件通过实现无传感器估计算法,为 Odrive 提供了在不使用物理位置传感器的情况下估计电机转子位置和速度的能力。这对于提高电机控制系统的性能和可靠性具有重要意义。该算法基于非线性观察者理论,利用电机的电气参数和电流测量值来估计转子位置和速度。
2025-02-26 01:03:31
488
原创 Odrive FOC 算法分析 (foc.cpp)
foc.cpp文件通过实现 FOC 算法,为 Odrive 提供了高性能的电机电流控制解决方案。通过 Clarke 变换、Park 变换、PI 控制和逆 Park 变换,该算法能够精确控制电机的磁场和转矩输出,实现高效、稳定的电机运行。
2025-02-26 00:58:03
1282
原创 Odrive 控制循环中 FOC 算法的应用场景解析
✅ 关键结论FOC 主战场:电流环(转矩控制)是 FOC 的核心应用场景。层级关系:外环(位置/速度)通过设定 torque_setpoint 驱动 FOC 内环执行。性能影响:FOC 的精度和响应速度直接决定电机的动态特性(如抖动、效率)。若需进一步分析 FOC 的代码实现细节(如 PI 参数调节、SVPWM 优化),可提供具体代码片段或模块名称 😊。
2025-02-26 00:45:03
1168
原创 testbed笔记:生成测试代码编译出现error: reference to ‘ ‘ is ambiguous
问题:解决办法:在导航栏sequence设置protection level因为缺少下面宏定义需要添加宏定义,解决办法:把宏定义加上:
2022-11-01 16:17:57
2222
1
原创 我眼中的未来【原创】
无论如何,这都会是一个转折点。未来我们应该有一个方向。这次疫情无论是规模还是带来的后果都是百年未遇的,而且它还在持续中。疫情让人们异常焦虑:可怕的感染让每个人都惶恐不安,糟糕的经济形式让人担心生活会不会出现大的变故,孩子们则因为失去很多“自由”而烦躁叛逆......事情还在进行中,一下子还很难判断世界将要变成什么样子。生活被按下暂停键,人们也开始思考未来:这会不会是一个转折?如果是,那么它会朝着哪个方向演进?我们希望它做出什么样的改变?带着这样的问题,让我们把“自己”放在更加久远的历史之..
2020-05-25 17:27:02
564
原创 linux(或者windows)软件工程师和软件工程师
linux(或者windows)软件工程师和软件工程师一个从单片机开始的开发者学校学的是电子专业,但是做硬件需要耐心和细心,几次电路板设计的失误让我彻底放弃了硬件这块儿。感觉还是软件更合适,学校只学了basic,于是自己学习了C语言的开发,那个时候感觉C语言好难,做pc下的c语言开发,如果涉及到底层,是非常牛X的事情,足以让人望而却步。也没有钱专门去做这方面的培训,于是就从单片机入手,写下了自...
2020-04-29 09:39:17
519
原创 实现一个简易的对等式异步通信框架
前面实现了一个简单的内存数据库,接下来就基于这个简单的内存数据库实现一个异步回调的通信框架。zxcom1.接口定义Zxcom接口主要有:初始化和去初始化。添加命令和应答处理函数。包的接收和发送包的组建。1.1 初始化和去初始化int ZxcomInit()int ZxcomDeInit()1.2 添加命令和响应处理函数int ZxcomAddCommand(COMMAN...
2020-04-20 11:07:49
328
原创 【原创】一个简单的key-value的内存数据库,可以运行在mcu上
你可以认为是一个非常简单的内存数据库,存储string的,可以存储和获取。1. 可以跑在单片机上。2.接口非常简单。ucomlibA simple key-value memory database1.接口定义ucomlib接口主要有:初始化和去初始化。 数据读取和存储接口。 超时机制。1.1 初始化和去初始化int CommuInit(voi...
2020-04-20 10:57:42
1081
转载 如何在linux(ubuntu)下安装source insight
https://blog.youkuaiyun.com/leon1741/article/details/54315506 1、安装wine wine(“Wine Is Not an Emulator”的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。安装了wine之后,会模仿一个类windows...
2018-04-27 09:34:14
537
转载 golang的interface传递
传interface,传递的是一个interface对象,这个对象占用16字节长度,包含一个指向原数据的指针,和一个指向运行时类型信息的指针。当然对于指向interface的指针这种用法是几乎没有用到的(例子中的Hello4()函数,编译没有成功,我不知道应该怎么写),也不建议这么用,因为interface本身差不多就是一个指针(其实是两个指针),stackoverflow有一个问答介绍这个问...
2018-04-26 14:34:19
2490
原创 ubuntu挂载win7共享文件系统
在vmware,打开虚拟机,选“虚拟机/设置”打开“虚拟机设置”后,选择“选项”,点“共享文件夹”。 选中“总是启用”,添加共享文件夹,确定。如果在/mnt/hgfs下没有共享成功。安装:open-vm-tools-dkms 如果以下执行不成功,请添加阿里源 sudo apt-get update sudo apt-get install open-vm-tools...
2018-04-25 10:57:22
448
原创 交叉编译go-sqlite3出现"undefined: SQLiteConn"
交叉编译go-sqlite3出现”undefined: SQLiteConn”在windows下交叉编译go-sqlite3,如果只更改了GOARCH环境变量,编译时会出现: undefined: SQLiteConn错误。查了一下,是需要使能cgo,于是更改环境: CGO_ENABLED=”0”为: CGO_ENABLED=”1”重新编译,出现下面错误:...
2018-04-24 18:15:28
4906
1
原创 交叉编译jsoncpp静态库
许多实用cmake的开源项目在移植到其他平台时,还是比较麻烦的。这里以jsoncpp为例。首先,我本机的交叉编译工具及目录是:# which arm-linux-gnueabihf-gcc/root/board/tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc从...
2018-04-19 14:46:48
2555
2_what_is_taste.pdf
2020-01-13
模糊控制原理讲解.pdf
2020-05-08
gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2.tar
2018-04-10
mdm9x07_mdm8207_mdm9628_mdm9206_digital_baseband_design.pdf
2019-12-31
模糊控制实现.pdf
2020-05-08
模糊控制算法.pdf
2020-05-08
<<设计模式>>GOF,C++实例源码
2018-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅