- 博客(314)
- 资源 (16)
- 收藏
- 关注
原创 有源和无源蜂鸣器的区别
内部自带振荡电路,你给它(到额定电压)它就自己“滴——”响,频率基本固定。:内部没有振荡器,本质更像“线圈/压电片 + 机械结构”,你必须给它才能响,声音的。
2026-01-09 13:49:07
29
原创 c 文件生成 库文件的方法,防止代码被别人抄袭
2. OBJ文件夹下,打开cmd命令框,并且输入命令"D:\Keil_v5\ARM\ARMCC\bin\armar.exe" -r error.lib error.o ,即可。我们写keil程序时,为了保护代码,经常以库文件给到别人用,而lib的好处是不能被别人剽窃。1. *.o 的文件位置,项目生成的*.o 的文件位置,一般在OBJ文件夹下。1. error.lib 直接替代error.c文件,参与项目编译。(keil项目生产的.o文件,可以是任何文件)网上大部分的方法在项目里修改,太复杂,又费时。
2025-12-23 16:38:31
128
原创 RDP(读保护)出厂流程
ST-LINK 接:SWDIO / SWCLK / GND / VTref(3.3V)-(可选)尝试 Read Flash,会提示受保护(不同版本提示不一样)看日志:Programming OK + Verify OK。(F4 常见显示:Level1 =Option Bytes 里确认。,按提示复位或断电重启。
2025-12-23 16:17:28
168
原创 SVN转移服务器仓库后,旧服务器不能被访问的解决办法
我自己的电脑上,有服务器和客户端,客户端可以访问自己的服务器的文件。但是有一天,我把自己服务器的文件夹(即转移服务器仓库)复制到本局域网内的另一台电脑上,但是从那以后,我自己的电脑的客户端访问不了自己的服务器了。需要把旧的服务器仓库的文件,转移到新的服务器上,我直接 拷贝Repositories文件在新服务器上,虽然新的服务器和客户端,可以正常工作了。但是原先旧的服务器却不能正常工作。解决办法如下,已经解决。
2025-12-23 11:57:51
167
原创 项目管理需要的文档
装配工艺指导书》:怎么组装光学腔、如何锁螺丝、上胶、接线。每块板卡的功能划分:本安电源板、主控板、光学探测板等。设计落实位置:本安电源板 + 限流电阻 + 保险丝。(你可以要求嵌入式工程师写,但你要帮他们列清需求)使用场景:巷道、综采面、固定监测点 or 便携式。关键器件降额分析:电压、电流、功耗裕量。这一份很关键,否则后面可能设计完发现。把“这台仪表的大脑长什么样”说清楚。面向最终使用者(矿方电工/安全员)。设计落实位置:壳体接合面结构。条款:本安电路功耗限制。要求:U/I/P 上限。
2025-12-02 10:45:57
585
原创 实时状态机框架 QP/C
QP/C 是一种专门用于嵌入式系统开发的实时状态机框架,全称为 “Quantum Platform for C”,由 Miro Samek 博士提出,基于层次化状态机(HSM,Hierarchical State Machine) 理论,是 QP(Quantum Platform)系列框架(包括 QP/C++、QP-nano 等)中针对 C 语言的版本。QP/C 的核心思想传统的有限状态机(FSM)难以处理复杂系统中 “状态嵌套” 和 “行为复用” 的问题(例如,多个子状态共享父状态的通用行为)。
2025-11-07 11:32:21
501
原创 嵌入式开发中,状态机的实现方法
可读性稍差,状态转换逻辑不够直观。:状态多时代码冗长,维护困难。:需要C++支持,资源占用多。:减少重复代码,支持状态复用。:符合OOP原则,扩展性好。:可视化设计,自动生成代码。:结构清晰,易于扩展维护。:学习成本高,依赖工具链。:执行效率高,模块化好。:简单直观,易于理解。:调试困难,状态分散。
2025-11-07 11:15:40
440
原创 状态机实现的方法
状态机实现的方法,可以按两条线来理解“实现方法”:一条是(输出何时产生/状态如何组织),另一条是(代码怎么写、怎么派发事件/定时器)。
2025-11-07 09:59:45
848
原创 表面处理-电晕机
电晕机(Corona Treater)是一种的工业设备,主要用来给塑料薄膜(如 PE、PP、BOPP、CPP、PET 等)、金属箔或复合膜做,让油墨、胶黏剂、涂层“更容易沾上去、粘得牢、耐久性更好”。包装印刷、涂布、复合、金属化前处理等场景最常见。
2025-10-31 16:40:15
526
原创 can 错误HAL_CAN_ERROR_NOT_READY,HAL_CAN_ERROR_TIMEOUT
• 后果:从机的CAN控制器可能无法正确锁定波特率,或者在等待总线空闲的超时过程中失败,导致初始化函数返回错误。• 问题:当从机初始化时,如果主机正在密集地发送数据帧,总线会一直处于“活跃”状态,很难出现长的空闲时段。因为从机设备热插拔,can初始化的时候,主机可能此刻正在发送数据,总线不空闲,导致从机can初始化失败。把检测空闲的延时放大就好了。从机设备一上电,can初始化的时候,HAL_CAN_Start偶发的会出现错误,1. 出现 HAL_CAN_ERROR_NOT_READY 错误的原因。
2025-10-11 13:46:08
294
原创 stm32L496 flash 分配
不同型号的STM32L4xx芯片,其FLASH容量也有所不同,最小的只有256K字节,最大 的则达到了1024K字节。
2025-09-24 15:46:47
216
原创 未来物联网大模型:物联网硬件+底层驱动+AI 自动生成和调优LUA脚本,
如果开发一套物联网大系统,硬件弄好,驱动和算法,系统弄好,上层应用用lua脚本,lua脚本又是用ai来写的话,是不是这套系统可以适应大部分的物联网大模型。这样做的好处是什么,这是不是未来的趋势,这套系统弄好,未来3年,是不是可以改变些什么。这个思路,本质上是把打造成一个稳定的“通用计算平台”,然后用(或其他解释型语言)承载上层业务逻辑,而 Lua 的脚本内容又由。如果这件事做成了,对未来 3 年的 IoT 开发模式确实可能带来很大变化。
2025-08-11 18:06:12
1404
原创 “底层闭源 + Lua 脚本” 开发模式
从隔离到高效:揭秘 “底层闭源 + Lua 脚本” 开发模式 —— 智能锁领域的落地实践(驱动、框架等)+(业务逻辑可扩展)。这种分层方式既能保护核心技术,又能快速迭代业务,被视为。在物联网智能锁行业,这种模式更是展现出独特价值。本文将结合行业特点,深入解析其。
2025-08-11 17:36:53
825
原创 HAL_UART_Transmit_DMA(),通过DMA发送数据后,如何判断数据是否发送完成
在STM32 HAL库中,使用HAL库会在DMA传输完成后触发中断,并调用相应的回调函数。
2025-08-06 09:01:30
969
原创 push/pop字节对齐使用场景
不同编译器或平台的默认对齐规则可能不同(如x86通常按4字节对齐,嵌入式平台可能按2字节)。设置的字节对齐方式。
2025-08-04 17:03:03
319
原创 调试打印信息实现
* 调试等级宏定义 */1234/* 若未定义 LOG_LEVEL,则默认启用所有级别 */#endif/* Error 级别日志 */#if。
2025-07-29 07:58:13
1192
原创 C ,关键字 volatile
这几个变量被声明为 volatile,意味着它们的值可能会因为硬件中断、多线程等外部因素而改变,编译器不会对这些变量进行优化,每次访问这些变量时都会从其实际内存地址中读取,而不是从寄存器缓存中读取,以确保程序能获取到变量的最新值。比如在一个多线程程序中,一个线程可能会修改 “lastHeartbeatTime” 变量的值,另一个线程需要及时获取到这个修改后的值,使用 volatile 关键字修饰就能保证这种及时性。它用于修饰变量,告知编译器该变量的值可能会在程序的控制或检测之外被改变。
2025-07-28 10:06:34
326
原创 沿线 IO 板配置ID的流程
顺序配置:通过“查询时序唯一性”保证 IO 板一对一配置,避免总线冲突。状态依赖:配置命令仅触发“当前查询成功”的 IO 板,利用状态匹配实现精准控制。可重置性:重查机制通过“广播 + 状态初始化”,支持总线设备批量重置与二次配置,适配系统调试、故障恢复场景。
2025-07-22 08:30:58
331
原创 程序总是进入 Error_Handler(),排查和解决方法
说明某个硬件或软件初始化失败。:说明错误地址未记录(可能是通用内存违规)。:错误地址无效(可能是间接访问错误)。(如访问了未分配的地址或只读区域)。(如访问了不存在的寄存器或外设)。时,如果程序总是进入。:错误未精确定位到指令。
2025-07-17 09:20:23
1013
原创 can 收发器 SN65HVD230DR的使用说明
高速模式 和 斜率模式都是 正常工作模式,可监听 可发送数据,只是斜率模式功耗低一点,还有EMI的问题。低功耗监听模式下,接收器打开,可以接受到数据,但是驱动器是关闭的,mcu 的can 控制器无法驱动 ACK, 只能NAK.正常工作模式下(高速或者斜率),接受器 (RX)和 驱动器(TX) 打开,mcu 的can 控制器可以ACK.配置成开漏输出,输出置1的情况下单片机引脚此时处于浮空,高阻态,此时才是真正的。RS 接地的时候,can 收发器处于高速模式。在推挽模式下,输出低电平,这时CAN的功耗要大。
2025-07-08 10:08:10
572
原创 修改外部参数C实现
某些RTOS或特殊框架可能强制使用u32传递指针。函数签名直接表明需要什么类型的参数。IDE和文档工具能正确识别参数类型。回调函数注册时参数类型受限的情况。系统级API需要通用参数类型时。编译器能直接检查类型是否正确。后续开发者一看就明白参数意义。与不支持指针类型的语言交互时。受限于特定的框架或系统要求。不需要危险的强制类型转换。不需要额外的类型转换注释。需要实现某种通用接口设计。需要隐藏实际数据结构时。有明确的跨语言交互需求。符合C语言的最佳实践。
2025-06-26 13:09:57
270
原创 Modbus调试工具的使用方法---- Modbus Poll 和Modbus Slave详细图文教程
Modbus Poll官网详细资料: Modbus 主站模拟器 Modbus Poll 快速入门指南: Modbus Poll Quick start Modbus Poll 用户手册: Modbus Poll 用户手册Modbus 从站模拟器Modbus Slave 用户手册或者:Modbus仿真器 Modbus Poll 和Modbus Slave详细图文教程 - 知乎
2025-06-21 18:09:27
701
原创 Modbus 主机(Master)和从机(Slave)的区别
主机和从机是Modbus通信中互补的两个角色,主机负责控制和调度,从机负责数据提供和执行。在设计Modbus设备时,需要根据设备在系统中的角色选择实现相应的功能。
2025-06-19 16:57:37
1436
转载 STMCUBEMX中直接更改单片机型号
第一种方法就是使用cube选择一个新使用的MCU型号,然后使用导入功能导入原来的工程,只要同系列同管脚的,就能把原来的配置完全复制过来,这种方法仅限于同系列。用这样的方法导入的话,原来工程中自己编写的代码不能导入,导入的只是STM32Cube的配置相关。第二种方法,直接拷贝一个正在使用的工程,包含.ioc文件,我使用Nopad++打开这个.ioc文件,搜索"ZGT",在文件中能搜索到3个地方是ZGT的,把这个ZGT更换成VET,然后保存。替换成功,原来的参数配置不变,但是需要重新配置时钟树。
2025-06-17 14:16:04
563
原创 stm32f207zet6,通过网口(W5500)升级程序,详细过程说明及代码
fromelf --bin -o "$L@L.bin" "#L"12.完整升级过程的调试信息,可参考。3. 从14例程摘取有用的驱动及应用文件到新建stm32F207ZET6工程(注意是驱动和应用文件,没有协议文件哦,W5500自带协议,不需要移植LWIP。只需修改wiz_platform.c即可,这个官方给用户的平台文件,修改接口,对上驱动就可。1. 使用CubeMx软件,新建stm32F207ZET6工程,RCC使能,主频120M,并且调通spi3, ,定时器2,uart3(调试口)
2025-06-16 16:30:31
726
原创 EPD_2IN7_V2_Clear() 和 Paint_Clear(WHITE) 的区别
在微雪(Waveshare)墨水屏驱动中,EPD_2IN7_V2_Clear()虽然都能实现清屏效果,但二者的底层操作和适用场景有本质区别。和 Paint_Clear(WHITE)
2025-05-25 19:15:32
447
原创 墨水屏,Paint_SelectImage使用场景
在微雪(Waveshare)墨水屏的驱动库中,Paint_SelectImage(BlackImage)通过合理管理图像缓存,可实现复杂的动态界面效果(如动画、菜单切换),同时保持墨水屏的低功耗特性。需求:两个设备检测界面,固定文字如“电压/电流”+动态数值,以下是。通过此设计,可实现高效、低功耗的双设备检测界面。需手动分配内存,且大小必须匹配屏幕分辨率。若使用4灰度(16级)显示,缓存大小应为。是一个关键函数,用于。
2025-05-25 19:07:39
712
原创 微雪墨水屏 如何 控制绘制图形(如点、线、矩形等)线条粗细或点的大小
它定义了单个逻辑像素的物理显示尺寸,直接影响绘制效果的精细程度。通过灵活组合这些参数,可精准控制墨水屏的绘图效果,平衡显示清晰度与刷新效率。在微雪(Waveshare)墨水屏的绘图库中,DOT_PIXEL_1X1。以下是针对微雪(Waveshare)墨水屏驱动库中。
2025-05-25 17:41:45
871
原创 墨水屏 函数Paint_SetScale的详解
的函数,主要影响后续绘图操作(如画点、线、文字等)的像素放大效果。在微雪(Waveshare)墨水屏的驱动库中,Paint_SetScale(4)
2025-05-25 17:29:07
380
原创 微雪2.7英寸墨水屏 API函数 解释
局刷: Init + Display_Partial + 定期Display。4灰度: Init_4GRAY + 4GrayDisplay。通过合理选择函数组合,可平衡显示质量、刷新速度和功耗。标准全刷: Init + Display。
2025-05-25 16:12:36
356
原创 定时器相关概念
定时器是微控制器(MCU)中的硬件模块,用于等。T_{中断} = \frac{(PSC + 1) \times (ARR + 1)}{F_{CLK}}掌握定时器的配置与计算,可覆盖绝大多数嵌入式实时控制场景!
2025-05-18 19:46:56
1570
详细介绍linux下移植wifi的步骤
2018-07-12
linux 下 移植 wifi . 概念讲解, iw ,wpa, dhco, hostapd每个步骤都有。
2018-07-17
svn 服务器和客户端
2018-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅