- 博客(235)
- 资源 (4)
- 收藏
- 关注
原创 我的硬件设计常用核心器件列表
1、AD12562、ADS131A043、ADS86881、AD56761、LM11172、TPS543023、TPS5430
2025-04-01 09:37:18
100
原创 使用AT命令测试ESP-01S连接MQTT服务器通信
需要用到以下命令复位模块;AT+RST\r\n设置为station模式。关回写ATE0\r\n多连接连接wifi。
2025-03-31 14:15:12
186
原创 android studio 使用Java xml开发app
创建工程时选择empty views activity。更换国内源 加速下载需要修改以下文件。项目级settings.gradle。
2025-03-30 20:58:07
340
原创 W23flip 不充电维修
我有一台w23flip 不能充电了。可能是排线和小尾板坏了,先换一套试一下。W23flip 和flip4 硬件兼容,购买配件时可选择flip4的配件。在某宝购买了 排线和尾板,进行安装。
2025-03-28 09:24:43
97
原创 0-2.5V采集范围的ADC采集正负5v电压信号
2.5V电压使用参考电压IC提供,也可以通过运放增强带载能力再提供2.5v电压。节点电流法列出等式,带入以上三组数据,求出R1R2R3之间的关系。用R替换R2R3后可计算出R1=(3/4)*R;采集正负5v的电阻关系为2*R2=R1=R3。可得R3=3*R2=R;采集正负10V的电阻关系为。
2025-03-21 19:57:03
152
原创 [AI写代码]modbus rtu master单片机程序modbus主机代码
实现一个基于 STM32 HAL库 ucosiii的Modbus-RTU Master 主机C语言程序代码,提供完整的C和H文件,能够与从机设备进行通信,Modbus 协议实现包含帧构建、发送、接收、解析等功能。- 其他功能码(如 0x01、0x02、0x04 等)。错误处理:处理从机返回的错误码。在源码里加上详细注释。- **0x03**:读取保持寄存器。- **0x06**:写入单个寄存器。- **0x10**:写入多个寄存器。超时处理:设置通信超时机制,防止死锁。
2025-02-12 11:19:55
210
原创 实时操作系统RTOS相较于裸机开发的优势之模块化和可维护性
特性裸机开发RTOS模块化程度低,代码集中在主循环中高,每个模块作为独立任务运行可维护性差,修改一个模块可能影响其他模块好,模块之间耦合度低,修改方便扩展性差,新增功能需修改主循环强,新增功能只需创建新任务调试效率低,需跟踪整个主循环高,每个任务可独立调试代码复用性低,代码耦合度高高,模块化设计便于复用。
2025-02-10 14:43:54
351
原创 实时操作系统RTOS相较于裸机开发的优势之多任务管理
特性裸机开发RTOS任务调度手动调度,逻辑复杂自动调度,简单高效实时性实时性差,低优先级任务可能阻塞高优先级任务实时性好,高优先级任务可及时响应代码结构耦合度高,难以维护模块化,易于维护和扩展资源管理需要手动实现同步机制提供信号量、互斥锁等机制,管理方便开发效率开发效率低,调试复杂开发效率高,调试方便。
2025-02-10 14:30:10
285
原创 [AI写代码]ucosiii动作顺序执行器
有以下功能:每个动作执行器包含一个ucosiii定时器对象,动作执行状态,动作总数,已执行动作数量,动作组数据,每个动作有一个执行时间点,到时间即执行动作,要注意一点,有些动作可能执行时间相同(这部分要在代码中标出注释),你需要想一个数据结构来管理动作组数据。动作组结构体包含执行的动作类型(类型包括开关量操作、模拟量输出、自定义函数指针等),动作执行时间点单位秒,执行时的参数指针。还要有动作执行器操作函数,比如开始执行,暂停执行,继续执行,停止执行函数,获取执行器状态。编码时状态要用枚举型表示。
2025-02-10 08:45:06
154
原创 [AI写代码]单片机内存管理
单片机stm32f429 HAL 写一个内存管理代码,可动态管理内部内存,也可以管理外部扩展的内存,管理时可能需要选择内存,这个程序会用在ucosiii的任务中。
2025-02-07 13:35:47
254
原创 为什么使用操作系统的信号量和消息队列比全局变量更好
消息队列和信号量虽然本质上是全局变量,但它们通过操作系统的机制提供了线程安全性、同步、阻塞等待、数据封装等特性,使得它们在多任务系统中更加高效和安全。相比之下,直接使用全局变量在多任务环境中容易引发竞争条件、忙等待等问题,难以维护和扩展。因此,消息队列和信号量是更好的选择。
2025-02-07 08:55:15
673
原创 stm32f429单片机 HAL UCOSIII 内存管理代码
单片机stm32f429 HAL 写一个内存管理代码,可动态管理内部内存,也可以管理外部扩展的内存,管理时可能需要选择内存,这个程序会用在ucosiii的任务中,要保证代码可靠性和可用性高。
2025-01-22 10:29:04
129
原创 我的创作纪念日
他们的关注和反馈让我感到非常欣慰,也激励我继续创作。最重要的是,通过创作,我认识了许多志同道合的领域同行,我们经常在技术上进行交流,互相分享经验和心得。在项目中,我常常遇到各种技术难题和挑战,通过不断的学习和实践,我积累了许多宝贵的经验。同时,我也希望能够通过创作,分享更多的技术经验和心得,帮助更多的开发者。这段代码通过缓冲区的方式对ADC采集的数据进行平滑处理,减少了噪声的影响,并且能够根据不同的通道进行相应的数据处理。同时,我也希望能够与更多的同行进行技术交流,共同探讨技术问题,推动技术的发展。
2025-01-17 13:55:27
604
原创 [AI写代码]CANopen功能代码设计
我有三块单片机控制板一个主控制板stm32f429 两个从控制板stm32f103为数字量控制板和模拟量控制板,主板和从板之间需要进行通信,使用canopen协议通信如何设计他们的通信程序,以后还有可能添加其他从控制板。
2025-01-14 08:30:27
135
原创 stm32单片机程序运行时间计时程序
能够计时某段stm32f429单片机程序运行时间的程序,开始计时函数和结束计时函数,结束时通过printf输出运行时间。如果你的系统时钟不是180MHz,需要修改endTimer()中的除数。需要确保你的工程中已经正确配置了串口打印功能(重定向了printf)计时精度取决于CPU频率,180MHz时精度约为5.56ns。计时器是32位的,在180MHz时大约能测量最大23.8秒。如果需要测量更长时间,可以修改代码使用64位变量存储时间。
2025-01-08 14:06:32
244
原创 [AI硬件设计] ADC采集板硬件设计
我要使用ADS8688芯片作为电压采集芯片,要求能够像万用表一样测量电压,电压范围为固定的0-5V,8个通道都能够测量电压,应该如何设计硬件电路,被测电压和ADS8688的采集系统存在电压差,能够正确测量电压吗。
2025-01-07 08:49:41
163
原创 [AI硬件设计]多路电阻测量电路硬件设计
我要做一个测量电阻的硬件,具体功能为能够同时测4路电阻,每路电阻测量范围为0-40M欧姆,精度为千分之一,我应该如何设计这个电路?- ADC: ADS1256 (24位,最高精度可达0.0001%)- 恒流源电路(采用REF200或LM334)- 恒流源: REF200 (温漂小,精度高)- 多路复用器: CD4052 (低导通电阻)- 400kΩ-40MΩ: 100nA恒流源。- 400Ω-40kΩ: 100μA恒流源。- 40kΩ-400kΩ: 10μA恒流源。- 0-400Ω: 1mA恒流源。
2025-01-03 11:57:31
254
原创 [AI写代码] 设备错误上报功能
使用stm32f429 ucosiii,需要一个错误报警机制,我在程序运行中可能会发生错误,或者警告,需要将错误或者警告通过modbus tcp将错误码传递给上位机,如果是错误,我会停止程序运行,我会等待上位机发送清除错误码数值写到某个寄存器地址,我收到这个数据后会运行此错误码的应对程序,如果是警告,则只通过modbus tcp向上位机发送警告码,完成这个程序的设计。
2024-12-25 13:48:19
198
原创 MAX6675测试电压的准确度验证测试
是的,将 K 型热电偶的负极(T-)接到 MAX6675 芯片的 GND 是正确的连接方式。出现的问题,电位差计给出电压到MAX6675,使用MAX6675读取的结果和电位差计给定值有出入,温度越高相差越多,所以设计一个实验验证一下MAX6675直接测热电偶是否准确。如果 T- 不接到芯片的 GND,而是浮空或接在不同的地电势上,可能会由于参考电位差的不一致,导致测量信号失真或完全错误。使用真实的热电偶时,偏差通常较小,但仍需注意热电偶的质量、接触情况,以及芯片周围的温度和电磁环境。
2024-12-25 11:17:36
1025
原创 [AI写代码]C语言PID温度控制代码
使用Claude-3.5-Sonnet生成,未调试运行。不同温度区间使用不同速率。Ki值影响稳态误差消除。考虑设备安全和性能要求。可以添加更多的温度区间。
2024-12-15 17:10:02
323
原创 [AI写代码]温度控制代码编写和PID温度控制代码
ucosiii写一个温度控制器,控制器有两个dac输出用来间接控制温度,一个DAC输出由一个温度传感器决定叫反馈温度,是实际的温度,一个dac输出由设置的温度控制叫给定温度,还有一个值叫目标温度,是最终要达到的温度,控制器可以设置升温的启停,升温速度 单位 度/秒,升温开始时,给定温度以当前反馈温度值开始增加,直至到达目标温度,实际温度和目标温度差值在正负5度时温度达标,可用函数查询是否达标。以面向对象的方式写这个控制器,因为这样的控制器需要很多路。
2024-10-14 09:00:30
668
原创 [LWIP]在源码中查看Lwip版本号
lwip源码中版本号在文件init.h中,文件路径为LwIP\src\include\lwip。如下代码为init.h中版本号信息的宏定义,可知我是用的是2.1.2版本。init.h完整代码如下。
2024-09-26 11:48:47
369
原创 stm32 Modbus-RTU Master 主机程序
ModbusRTU_Master.c ModbusRTU_Master.h 加入到工程中。
2024-09-10 14:18:20
1042
2
原创 GPT4o编写步进电机控制代码
基于STM32F407 HAL库,写一个步进电机控制程序,需要控制8个步进电机,我会给出描述步进电机的结构体变量,基于这些变量需要你做出以下功能,电机脉冲通过定时器中断翻转脉冲引脚的电平实现,零点位置在最小限位和最大限位中间,运行的距离根据脉冲数而定。要能够实现多个电机同时运行动作,给我一份完整的程序,C文件和H文件,包括8路电机参数、定时器和引脚的初始化,total_steps这个变量表示电机最大能够运行的步数,在复位或者其他动作时,如果运行超过这个步数还是没有接收到限位传感器信号则立即停止电机。
2024-08-14 17:01:25
966
原创 模拟蓝牙打卡机
只需要一个ESP32模块模拟蓝牙打卡机,即可通过蓝牙打卡 亲测有效arduino代码如下。打卡机的MAC和RAW数据可使用安卓app mRFconnect 扫描获取。模拟蓝牙打卡,源码来自github项目dingBLE。
2024-06-05 15:07:06
2097
7
原创 电源纹波测试
设计了一个电源板输入15-36V可输出12V-5V-3.3V这三个电压,测试方法:输入端电压使用直流电源24V,示波器采用20M带宽交流档位。12V输出降压DCDC使用RT7272B5V输出降压DCDC使用TPS543023.3V输出降压LDO使用1117。
2024-04-07 16:34:25
813
原创 stm32定时器中断函数回调函数
启用USE_HAL_TIM_REGISTER_CALLBACKS宏定义之后,在中断发生时,首先会调用硬件中断函数TIM3_IRQHandler,这是由单片机芯片硬件设计决定的,再此函数中会调用 HAL_TIM_IRQHandler(&htim3);编辑源码程序,在stm32f4xx_hal_config.h文件中打开USE_HAL_TIM_REGISTER_CALLBACKS宏定义为1。在HAL_TIM_IRQHandler中会有一段代码,决定执行哪个回调函数,这部分是在编译时就确定的。
2024-03-29 20:07:59
5599
原创 FID离子流采集硬件方案设计
氢离子火焰检测器(Flame Ionization Detector, FID)是气相色谱仪中常用的一种检测器,主要用于检测有机化合物。它的工作原理基于在高温氢气/空气火焰中,有机化合物会发生离子化放出电子的过程。
2024-03-28 11:43:39
696
1
基于stm32F429 LWIP LAN8720 MODBUS TCP 支持网线热插拔
2024-09-18
51单片机超声波距离测试仿真
2023-06-05
51单片机仿真解热控制
2023-06-05
204-51单片机仿真和源码参考资料
2023-06-01
51单片机直流电机调速系统设计
2022-06-04
IEC 61010-2-101-2015.pdf
2020-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人