2026.1.26 经验分享会
2026年1月26日下午,上海实邦电子科技有限公司开展了一次经验交流会,由陈工、崔工和范工三位工程师一起分享了他们在工作中积累的一些经验。
首先由陈工讲述了——外部flash下载:串口flash编程工具、Keil外部flash下载
串口flash编程工具
为什么需要设计串口flash编程工具?
目前网上有很多关于keil外部flash下载方法的教程,这里不过多赘述,该方法的缺点主要有以下几点。
每种单片机都需要写一遍外部flash下载算法,然后生成FLM文件,比较依赖keil开发环境,
下载算法是加载到RAM执行的,算法大小必须小于等于RAM的空间,对于RAM比较小的单片机,很难应用该方法
下载算法加载以后,每次点下载都会完整把外部flash的数据下载一遍,即使你只改变的是局部数据,或者内部flash的代码,只要下载,都会重新下载一遍,除非每次屏蔽。
因为使用的是SWD调试接口下载,如果产品不希望引出该接口给客户使用,或者因为代码安全原因屏蔽了该接口,下载就比较受限
串口flash编程工具简介
该上位机结合ai开发我测试了好几种语言,C#,QT,python我都试过,C#的话界面古老,不符合现代化UI设计(字体可调,圆角,边框,阴影等效果都比较差),python和QT的话也是一样,技术上UI可以更加现代化,如果你不去指定UI风格的话,通常开发会是默认的最丑的一套UI,HTML的话默认的一套就比较现代化。(这个可以参考LVGL,默认的一套UI风就是比较现代化的)。那么为什么要纠结现代化UI,能用不就行了吗?确实可以,但是一个好的UI能让功能更加直观,不同功能之前权重不同。现代化的设计通常用:字体大小区分,卡片组,层次分明,操作正常/异常特效,启用和禁用的效果。
为什么选HTML开发?
1. 跨平台,只需要有浏览器即可;UI设计更加符合直觉;
2. 设计思想比较好
HTML+JS+CSS架构
HTML是负责页面显示
JS是javascript,用来实现功能逻辑
CSS是UI风格描述
Tips: 一般简单的html程序,这三个都会内嵌到html里面,复杂的程序会分成3个文件。
什么不使用现成的modbus协议,或者XYZ-MODEM协议,或者是其他文件传输协议?因为主要考虑灵活性、后期可维护性和轻量级的特性,因此自定义协议是最佳选择。
Keil外部flash下载
什么是外部flash 下载算法?
外部flash或者内置的片上flash,都是编译器通过调用写好的FLM文件来实现下载,单片机内部的安装pack包就会有(官方实现),外部flash的情况比较复杂。
外部flash对单片机的性能有要求吗?
没有太大要求。下载算法是加载到RAM中的,对flash 没有要求,RAM通常4K或者以上就可以运行下载算法(当然你的代码要简洁)。例如你的RAM是4K 你的下载算法生成的代码空间就要小于4K,8K就小于8K。
为什么需要外部flash算法?
外部flash算法是用来节省内部flash空间的,在一些应用中,图片数据,字模数据比较占用单片机内存空间,在内存小的单片机中,是存不下这些数据的,通过在一些设置和下载算法,可以将工程中的常量保存到外部flash
为什么不用其他方式对外部flash下载数据?
a. 用文件系统方式。会增加复杂度,增加性能占用。对于性能低的单片机,需要快速传输的数据不适合再走文件系统的接口。
b. 用其他方法直接下载数据,比如专门下载数据的工程,或者专门的编程器,这些方案是可以,但是一方面是下载就非常麻烦,另一方面是对于数据的绝对地址管理起来费劲。
下载算法实现需要准备:
1. 官方单片机的库文件(或者准备一个工程模板)
2. 对应的flash驱动文件
3. Keil对于下载算法编写的工程模板

第二个是范工讲述了——有人云的使用
什么是有人IoT有人IoT是专业为工业物联网用户量身定制的信息化系统,提供安全可靠的设备接入和通讯能力,可低成本快速实现产品场景智能化,通过应用开发、组态服务、运维管理、数据中心等核心功能,对工业现场信息实现有效分析和处理,为用户提供全通讯方式的硬件+软件解决方案。
有人IoT本身基于云端部署,可以帮助用户在短时间内快速搭建一套物联网系统,可以结合用户的使用需求,提供为用户定制专属品牌信息,作为自己独立的品牌运营的服务;还可以私有化部署,数据更私密,并提供开放的api接口,能够帮助用户轻松的进行系统集成的开发。
1、什么是有人IoT-产品介绍-有人云
2、收费标准
合作模式-工业物联网云服务平台_有人科技云平台-有人云
设备和网关的区别
设备和网关的区别-产品介绍-有人云登录网址
有人通行证
操作第一步:添加一个网关
操作第二步:我们需要建一个设备模版,设备模版是根据我们客户需求来的需要传送哪些数据是按照modbus地址来定制。
操作第三步:设备模版有了我们可以添加设备了,设备要和设备模版绑定的这样云端就可以按照设定采集时间去主动读取数据了
需要注意的是,一个网关可以接多个设备,可以通过modbus站号进行区分地址。
操作第四步:现在设备也已经添加好了正常话 设备数据也会定时更新到云平台了,下面我们需要把他显示出来 所以有人云有一个组态管理,下面我们去根据需要去新建个对应我们这个设备的组态模版把。
操作第五步:现在组态也已经建立好了 给客户看 可以分享一个设备 用于客户查看
操作第六步:如果客户有很多设备想看全部设备怎么办。
用户权限里面可以给客户公司建立一个账户
总结:简单的 客户对界面要求不高的可以使用这个方案 这个方案可以快速搭建一个 速度很快。如果客户对网页 查看平台要求很高 有人云相对就没有就没有那么灵活。

然后是崔工讲述了——Agile Modbus库分享
开源免费:项目开源,托管于GitHub和Gitee平台
核心功能与特征
核心功能:多协议支持
Modbus RTU:支持基于串口的RTU协议,适用于短距离、低速率的工业环境
Modbus TCP:支持基于以太网的TCP协议,适用于长距离、高速率的网络环境
协议无关性:纯软件实现,可在串口跑TCP,或在网络上跑RTU协议
核心特征:轻量级与高效
纯C开发:代码简洁,执行效率高
低资源占用:适合资源受限的嵌入式系统
快速响应:优化的数据处理流程,确保实时性
Agile Modbus 专为嵌入式环境设计,通过极致的代码优化,实现了轻量、高效与实时的完美平衡,是物联网设备通信的理想选择
核心特征:易用性
丰富的示例:提供了PC和MCU上的多种示例,覆盖常见使用场景,帮助开发者快速上手
完善的文档:提供了详细的API说明和移植指南,确保开发过程顺畅无忧
核心特征:灵活性与扩展性
多主多从:支持多个主设备和多个从设备同时运行
自定义协议:支持符合Modbus格式的自定义功能码
可移植性强:与硬件无关,可以轻松移植到各种平台
从STM32、ESP32到x86架构PC,轻松适配各类硬件平台,加速项目开发进程
移植指南:轻松上手
从理论到实践,快速集成到您的项目中
移植步骤:添加源码到项目中
下载Agile Modbus源码:
从GitHub下载Agile Modbus库的源码,解压后找到agile_modbus/inc、agile_modbus/src、agile_modbus/util三个文件夹,将右图中的文件添加进项目中


- 上一篇:没有啦
- 下一篇:详解KiCad中的层 2026/1/22
