发动态
综合 最新发布 最新回复
图文
列表
这边有一个产品现在要打板升级增加AI对话能力,以及AI控制它的一些基本设置,有可做的公司吗?
#DIY设计# #嘉立创PCB#
立创开发板
ccs环境配置完之后如何修改工作空间呢,默认在c盘不会改,求教教
立创开发板
STM32CudeIDE
官方能不能出个STM32Cube的参考代码,初学者不让用KEIL太无力了,按网上的迁移教程,有些不明白,编译总是出错。。 #立创开发板# @立创开发板
立创开发板
关于立创·实战派ESP32-S3开发板的硬件疑问
今天在分析此开发板硬件时,注意到有一个USB-HUB芯片CH334,此芯片仅仅连接USB接口与USB转串口芯片CH340,不明白为何要多放这个芯片,官方WIKI中也没有关于此芯片的说明。 以下是猜测的可能用途: 1、练习扩展USB接口(可能性低) 2、信号放大与整形 3、过流检测与保护 4、传输模式(STT、MTT)适配 感谢 mR9SX6N7hw大佬进行纠正,仔细看了文档与原理图,发现是要支持CH340与主控USB OTG,也明白了TB上的常见开发板有2个USB口的原因。
立创开发板
H6801 升压恒压控制驱动芯片基本属性:是电流模式 BOOST 升压恒压控制驱动芯片,适用于 2.7 - 25V 输入电压范围的升压恒压电源应用领域,启动电压低至 2.5V ,可根据负载大小自动切换 PWM、PFM 和 BURST 模式,提升电源系统效率。性能特点:高效转换:转换效率通常可达 95% ,支持脉冲频率调制,低负载时进一步降低功耗,比如在智能传感器等间歇工作设备中,能减少能量损耗,延长电池续航。宽电压输入:输入电压范围 2.7 - 25V ,能适配锂电池(放电时从 4.2V 满电逐渐降至 3.0V 甚至更低等情况 )、太阳能等不同供电场景,确保电池在 2.7 - 4.2V 整个放电周期稳定工作。大电流与功率:支持 9A 大电流,可实现 200W 大功率输出(如 VIN = 12V,VO = 36V,IO = 0.9A,25℃时效率在 90% 以上 ),满足高功耗设备供电,像车载音响升压、电动工具快速补电等场景。低待机功耗:带 EN 使能脚,静态关机电流可低至 2μA,显著延长设备待机时间,适合智能传感器这类间歇工作设备。稳定精准:采用闭环反馈控制,通过 FB 脚调节,负载和线性调整率良好,动态响应快,输出电压波动小,能为负载提供稳定电源。多重保护:内置过压保护(OVP)、过流保护(OCP)、过温保护(OTP),还有软启动防浪涌功能,防止异常工况损坏电路,提升可靠性。低 EMI 设计:采用频率抖动技术,EMI 噪音低,易通过相关认证,减少对敏感电路干扰,比如在音频功放模块供电等场景,可避免影响音质等。应用场景:消费电子:搭配 PD 协议芯片等组成智能充电系统,支持多串锂电池组快速充电,满足手机、平板电脑等设备快充;也可用于太阳能玩具、户外摄影设备供电(如 3.7V 充电宝驱动 24V 影视灯 )。车载领域:可为车载音响升压,将 12V 车电升压至 36V,提升音质;还能用于车载设备供电、充电等场景。工业设备:给电动工具等高功耗设备快速补电;在太阳能控制板供电等工业场景也可应用,像 3.2V 升 12V1A 太阳能控制板供电方案 。智能传感器:因低待机功耗,适用于智能传感器等间歇工作设备供电,保障设备长时间稳定运行。
H6801 10A大电流支持3.3V升24V升压恒压灯带芯片方案低功耗 温度稳定度佳
立创开发板
vscode的eide插件开发stm32类开发板
请问各位大佬,我用cubemx生成的代码,用ac5编译代码没问题,但是使用gcc编译,代码会报很多错,请问各位大佬有没有解决方案?或者有更详细的教程可否分享一下小弟,谢谢各位大佬。
立创开发板
首先跟大家聊聊什么是静态链表,静态链表是一种使用数组来实现的链​表结构。在静态链表中,数组的每个元素称为一个节点,节点中包含两部分信息:数据和指向下一个节点的“指针”,这里的指针并不是C语言里语法上的指针,它主要是标记节点在数组中的位置,也就是数组的下标索引,其实广义上也是一种指针吧。再来看下静态链表怎么玩的吧~所以与动态链表的差异点,主要是静态链表的节点在内存中是连续存储的,而且节点的数量是固定的。有代码有真相:#include <stdio.h>#define MAX_SIZE 100 // 静态链表的节点结构 typedef struct Node {     int data; // 数据域     int next; // 指针域,指向下一个节点的索引 } Node; // 初始化静态链表 void init(Node list[]) {     // 将所有节点的 next 域初始化为 -1,表示空闲状态     for (int i = 0; i < MAX_SIZE; i++) {         list[i].next = -1;     } } // 释放节点 void release(Node list[], int index) {     // 将节点标记为可用状态     list[index].next = -1; } // 获取可用的空闲节点索引 int getFreeNode(Node list[]) {     for (int i = 0; i < MAX_SIZE; i++) {         if (list[i].next == -1) {             return i;         }     }     return -1; // 没有可用节点 } // 在链表末尾插入新节点 void insert(Node list[], int *head, int data) {     int freeIndex = getFreeNode(list);     if (freeIndex != -1) {         // 在空闲节点处插入新节点         list[freeIndex].data = data;         list[freeIndex].next = -1;         int i = *head;         while (list[i].next != -1) {             i = list[i].next;         }         list[i].next = freeIndex;     } else {         printf("No free node available.\n");     } } // 删除节点 void deleteNode(Node list[], int *head, int data) {     int prevIndex = -1;     int currIndex = *head;     while (currIndex != -1) {         if (list[currIndex].data == data) {             if (prevIndex != -1) {                 list[prevIndex].next = list[currIndex].next;             } else {                 *head = list[currIndex].next;             }             release(list, currIndex);             printf("Node with data %d deleted.\n", data);             return;         }         prevIndex = currIndex;         currIndex = list[currIndex].next;     }     printf("Node with data %d not found.\n", data); } 这样看静态链表代码上的两个特点,采用固定内存区域上数组,指向下一个元素存储的是数组索引。顺便整理下动态数组静态数组的差异,两者也如前面说的,主要是在内存管理和节点分配两个方面有比较大的差异点:1、内存管理方式:动态链表: 在动态链表中,节点通常是通过动态内存分配函数(如 malloc 或 new)在堆内存中分配的。这意味着节点在代码运行时动态地分配和释放内存。节点的数量可以根据需要进行动态调整,只要你的动态内存空间足够,因此在插入和删除节点时相对更加灵活。静态链表: 静态链表使用数组实现,节点的数量在编译时就被确定,并且存储空间是静态分配的,话说回来,你可以在使用前动态分配一片内存供静态链表使用,但在静态链表在使用过程中没法动态地增加或减少总的节点的数量,当然你说完全没法改变吧,也不是不行,就是相对来说性价比不高。2、节点的分配和释放:动态链表: 节点在堆内存中动态分配,因此可以根据需要创建新节点,并且可以在不需要时释放节点的内存,给其他任务去使用。节点的生命周期由bug工程师自己管理,可以根据需要进行内存管理,如果没管理好,就会出现内存泄漏或者野指针等问题。讲了这么多,到底静态链表有啥只用?有什么优势?主要是用在内存受限的嵌入式系统,比如说单片机,在内存受限的这样的嵌入式系统中,动态内存分配可能会导致碎片化问题,而静态链表通过预分配数组空间,避免了频繁的内存分配和释放。需要实时性有要求的系统:对于需要保证实时性能的系统,静态链表的实现更加可靠,因为它避免了动态内存分配和释放的不确定性,从而减少了系统出现延迟的可能性,这一点很重要。固定大小的数据结构,相对动态链表的话内存问题更加容易受管控。小型数据集:当数据集较小,不需要频繁进行节点插入和删除操作时,静态链表可以提供较好的性能和简洁的实现。
嵌入式实时性可以考虑静态链表~
立创开发板
梁山派配套触摸屏触摸没反应
今天第一次用,但是触摸一直没有反应[大哭]下载的是官方的代码,是有带触摸的,大佬们能看看这是什么问题吗[难过]会不会是i2C功能寄了,还是说板子屏幕本身就有问题
32次播放
立创开发板
大家好,我是bug菌~对于一些需要动态存储数据的嵌入式系统往往我们需要考虑系统在各种状态的数据可靠性问题。当然也不仅仅这些数据敏感的协议,最常见的就是你向存储系统写入数据的过程中给断电了,系统下一次上电跑飞了~掉电过程是最为敏感的情景,也是一般在系统设计前期要重点考虑的,那么今天bug菌就跟大家重点聊聊一般的嵌入式系统如何尽可能的避免重要存储数据的丢失与损坏。1、掉电检测  前面也提到了,掉电过程是数据丢失和损坏比较高发的状态,一方面离不开硬件上掉电备电电源的相对稳定性和持久性,另一方面也需要软件部分最好掉电过程系统完整的收尾工作,最常见的问题就是正在掉电,你还在使劲的写文件或者其他改变存储介质的操作,运气好可能只是文件写少了;运气不好直接文件系统就崩溃了~那么快速的掉电检可以帮助系统在断电前尽早将这些数据进行保存,以确保系统重新上电后能够恢复到正常工作状态,而不会因为掉电导致数据丢失或损坏。2、存储器件的寿命与稳定性电子产品都有使用寿命,在嵌入式设备里面常用闪存存储器,即Flash,而闪存通常以擦除/写入循环次数(P/E cycles)来衡量其寿命。常见的闪存产品如NAND和NOR闪存都有固定的P/E周期数量,一般在几千到几十万次之间,所以如果频繁擦写就会导致损坏,最终也会使得数据丢失,另外,闪存的寿命还受到温度、电压以及擦除/写入操作的影响。所以为了减少存储介质上的数据丢失要么选择高品质且可靠的存储介质,要么根据介质的特点优化存储算法,延长使用寿命。那么通常在软件层面有如下几种软件处理方法和策略:磨损均衡在闪存中,频繁写入相同的块会导致这些块的寿命提前耗尽,从而降低整个存储器的寿命。磨损均衡算法旨在平衡闪存中不同块的使用次数,避免某些块过早失效。可以通过选择写入次数最少的块来进行新数据的写入,或者通过重新映射块来实现。垃圾回收当删除或更新数据时,闪存中会产生垃圾数据,占用空间而无法直接写入。垃圾回收算法会定期检查闪存中的垃圾数据,并将其重新组织以释放可用空间。有效的垃圾回收算法可以减少擦除操作的频率,从而延长闪存的寿命,当然如果你没有用文件系统,只是裸写,基本上都是按顺序去写了。坏块管理坏块管理指的是处理闪存存储器中出现的无法正常读取或写入数据的坏块的过程。通过坏块检测、标记和替换,系统可以有效地识别和处理坏块,确保数据的完整性和可靠性。坏块管理还包括维护坏块映射表,以记录坏块的位置和替代块的使用情况。有效的坏块管理可以延长闪存存储器的寿命,提高系统的可靠性,并确保数据安全。写入放大减少写入放大指的是实际写入闪存的数据量与应用程序请求的数据量之间的差异。减少写入放大可以减少对闪存的写入操作,从而延长其寿命。这可以通过合并小的写入请求、延迟写入、以及数据压缩等技术来实现。静态和动态数据分离将静态数据(很少修改的数据)与动态数据(频繁修改的数据)分开存储在不同的闪存块中。这样可以避免频繁写入对静态数据块的影响,延长其寿命。温度和电压管理通过一些辅助的采样。来调节读写负荷,维持在合适的工作温度和电压可以减少对闪存的损坏和老化,从而延长其寿命。3、数据备份对于数据动态存储非常严格的应用需求场合,保证嵌入式设备的实时数据存储稳定性是非常重要的,特别是对于需要高可靠性和实时性的应用场景。以下是一些办法来确保嵌入式设备的实时数据存储稳定性:实时数据备份实时将数据备份到多个分区或者其他位置,例如本地存储和远程服务器,即是一块区域物理上遭到破坏,也能从其他区域进行恢复,极大的降低了数据丢失或损坏的概率。使用事务性存储机制采用具有事务性支持的存储机制,确保数据的原子性操作,即要么全部写入成功,要么全部失败,以避免数据不一致性,以免存在第三种状态完成系统的混乱与破坏。实时监控和错误处理建立实时监控系统来检测存储设备的健康状况,及时发现并处理存储设备的故障或错误,以前bug菌就接手到一些项目,写数据出了问题,好几天系统也没有提示,客户也没有及时查看,等发现问题已经好几周的数据异常了。采用更加成熟的文件系统一些支持掉电保护的实务型文件系统基本都支持日志功能或者文件系统级的保护机制。数据完整性校验实施数据完整性校验机制,例如循环冗余校验(CRC)或者哈希校验,来检测存储数据的完整性,及时发现和纠正数据损坏。
嵌入式系统如何尽可能避免存储数据丢失与损坏?
立创开发板
canmv ide linux下设置中文无效
求佬们帮忙
立创开发板
有大佬有地猛星的硬件iic驱动0.96寸oled的历程吗
立创开发板
请问为什么第一张照片里有错误,按正常应该是第二张图片那样,怎么解决呀。已经3天了,
[泪奔][泪奔][泪奔] 具体应该怎么操作呀[泪奔][泪奔]
立创开发板
升压恒压芯片 H6801:由惠海半导体生产,是一款电流模式 BOOST 升压恒压控制驱动芯片。 主要参数:输入电压范围 2.7V - 25V,启动电压低至 2.5V;输出电压可调,最高 36V(需外部反馈电阻设置);支持 9A 大电流,可做 200W 大功率;转换效率高可达 95%;待机功耗低,EN 拉低时关机电流 [removed] 95%。 宽电压输入:支持 2.7V - 25V 的宽输入电压范围,启动电压低至 2.5V,能确保在电池(如锂电池从满电 4.2V 放电至 3.0V 甚至更低)的整个放电周期内稳定工作,相比一些输入电压范围窄的同类芯片应用场景更广泛。 大电流与大功率支持:可支持 9A 大电流,能实现 200W 大功率输出,满足一些高功耗设备的供电需求,在同类芯片中功率支持能力较为突出。 低待机功耗:带有 EN 使能脚,静态关机电流可低至 2μA,能显著延长设备待机时间,对于智能传感器等间歇工作设备非常友好,同类芯片中待机功耗可能相对较高。 稳定输出与高精度:采用闭环反馈控制可通过 FB 脚调节,负载和线性调整率良好,动态响应快,输出电压波动小,能为负载提供更稳定的电源供应,相比部分同类芯片输出稳定性更优。 多重保护机制:内置过压保护(OVP)、过流保护(OCP)、过温保护(OTP)以及软启动防浪涌等功能,±3.5% 电压精度,可防止异常工况损坏电路,保护措施较为全面,能提高电路的可靠性和稳定性,一些同类芯片可能保护功能没有这么齐全。 低
立创开发板
立创开发板不靠卖板赚钱,以培养中国工程师为己任
推荐话题 换一批
#嘉立创PCB#
#DIY设计#
#畅聊专区#
#嘉立创免费3D打印#
#创享2025#
#3D免费打印#
#嘉立创3D免费打样券#
#高校动态#
查看更多热门话题
打赏记录
粤公网安备44030002004666号 · 粤ICP备2023121300号 · 用户协议 · 隐私政策 · 侵权举报 · ISO/IEC · Copyright © 2024 嘉立创社区版权所有
服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区