发动态
综合 最新发布 最新回复
图文
列表
置顶
【元器件规范共建召集令】诚邀行业专家,定义行业规范新基准
当你在电子元器件选型时,是否因参数定义模糊反复试错?当你推进研发项目时,是否因标准不统一延误进度?如今,有一个能改变行业现状、为电子产业发展注入新动能的机会 —— 加入立创商城电子元器件规范共建项目,与更多行业专家携手,打造科学、完善、权威的元器件参数规范体系!立创商城深耕电子元器件电商领域多年,深知统一精准的参数规范对行业上下游的重要性。我们正启动一项开创性工程,现面向全国电子元器件行业规范制定人、电子行业从业者、电子专业教育从业者、资深领域电子爱好者等群体招募 20-50 名细分领域专家,涵盖接口芯片、时钟和定时、射频无线、传感器等 9 大核心方向,邀你成为这场 “规范革命” 的 “执笔人”。1、你将参与的核心领域(涵盖9大方向)接口芯片USB、PCIe、CAN芯片等接口芯片的设计关注核心参数范围划定及其参数名词解释时钟和定时晶振、定时器、时钟发生器等震荡器的设计关注核心参数范围划定及其参数名词解释射频无线RF芯片、天线模块、无线收发器等无线射频相关器件的的设计关注核心参数范围划定及其参数名词解释传感器温度、压力、光电等传感器的设计关注核心参数范围划定及其参数名词解释功能模块电源管理、信号调理模块等电子模块的设计关注核心参数范围划定及其参数名词解释物联网/通信模块5G、WiFi、蓝牙模块等无线通讯模块的设计关注核心参数范围划定及其参数名词解释单片机/微控制器ST、TI、STC等单片机器件的设计关注核心参数范围划定及其参数名词解释逻辑器件和数据转换ADC/DAC、逻辑门等与信号转换和数据转换相关的设计关注核心参数范围划定及其参数名词解释显示屏器件OLED、LCD等显示屏的设计关注核心参数范围划定及其参数名词解释 2、你的角色:从技术实践者到标准制定者评审与优化:针对公司内部团队起草的规范初稿(如参数定义、填写规范、案例模板),以专业视角审核逻辑严谨性,提出修改建议(例如隔离电压、CMTI等参数的单位换算、优先级规则);深度参与:基于实操经验,为芯片引脚定义、数据速率计算、温度范围界定等参数提供行业实践案例,确保规范兼具理论准确性与工程可行性;成果共创:与跨领域专家协作,构建类似“电子元器件维基百科”的公开规范网站,让技术标准真正服务行业生态。3、我们为你提供的四大价值回报「行业署名权」:每一份经你评审修改的规范,均将在最终版本中明确标注你的姓名与单位,成为个人技术生涯的权威背书;「品牌曝光度」:规范公开时,参与评审与编撰的专家名单将同步公示,通过公司官方渠道(行业媒体、技术社区)定向推送,提升行业影响力;「知识共享平台」:加入电子元器件规范维基网站建设,你的技术见解将被全球工程师查阅引用,成为领域内的“隐形标准制定者”;「多样激励体系」:任务制,每次任务均有丰厚报酬奖励,根据审核规范复杂度与贡献度可获取,包括且不限于京东E卡/采购晶/优惠券/实物奖励等,多劳多得激励形式:1、积分制每次任务,每人均可获得积分,根据每人贡献程度获得对应积分贡献程度人数获得积分皇冠125黄金315白银610青铜105 2、积分可兑换礼品积分数兑换礼品价值550E卡或50采购晶50元10100元E卡或100元采购晶100元20200元E卡或200元采购晶200元50500元E卡或500元采购晶500元1001000元E卡或1000元采购晶1000元2002000元E卡或2000元采购晶2000元 4、为什么工程师值得加入?技术价值升华:从“用标准”到“定标准”,让你的经验成为行业参照坐标; 资源链接机遇:与芯片原厂、方案商专家深度交流,拓展技术人脉圈; 职业发展加分:参与行业级规范制定的经历,是技术管理岗晋升的硬核背书。5、报名方式如果您在上述领域拥有多年以上研发/设计经验,或主导过元器件选型与参数验证项目,欢迎将个人简历(附技术专长说明)发送至:,邮件主题注明“【规范专家报名】+领域方向”。我们将在3个工作日内与您联系,共商规范共建蓝图。 电子元器件的每一个参数,都承载着工程师的智慧。现在,你就有机会成为定义行业规范的 “少数派”,让全球工程师使用你参与制定的标准。这不仅是一次技术实践,更是一段能为行业留下深刻印记、为职业增添高光的宝贵经历。立创商城期待与你携手,重塑元器件参数规范行业标杆,让你的技术印记,刻进行业未来! 注:“本次共建采用灵活协作模式,单次任务预计耗时2~4小时,全程线上进行,不影响日常工作。”
【元器件规范共建召集令】诚邀行业专家,定义行业规范新基准
立创商城
加油!
3D打印
"微服务是银弹!" "Docker不是银弹!" "React才是真正的银弹!" 天天在文章和评论区看到这个词语,他到底是个啥,又是从哪里开始的。今天不讲技术,聊一下啥是银弹。概念来源"银弹"(Silver Bullet)这个概念来自于弗雷德里克·布鲁克斯(Fred Brooks) 的经典著作《人月神话》(The Mythical Man-Month)。1986年,布鲁克斯在著名论文《没有银弹:软件工程的本质与偶然性》中提出了这个影响深远的论断:在软件工程领域,没有任何技术或方法能够在十年内使生产率、可靠性和简洁性有数量级的提升。狼人传说的隐喻为什么要用"银弹"这个词?这个比喻来自狼人传说:狼人:被认为是不死的、无坚不摧的怪物银弹:传说中唯一能够杀死狼人的武器布鲁克斯用这个比喻来说明:软件开发的本质复杂性 = 狼人(看似不可战胜的难题)神奇的技术解决方案 = 银弹(人们期望的一招制敌的办法)残酷的现实 = 银弹根本不存在软件困难的分类布鲁克斯将软件开发的困难分为两类:本质性困难(Essence)这些是软件开发固有的、无法避免的困难:概念结构的复杂性:软件本身的概念结构不可见性:软件没有物理实体,无法直观把握一致性和可变性:必须适应不断变化的需求离散性:软件系统的状态组合极其庞大偶然性困难(Accident)这些是由于当前工具和技术限制造成的困难:开发工具的限制编程语言的复杂性硬件性能约束团队协作问题布鲁克斯的核心观点是:银弹最多只能解决偶然性困难,但无法触及本质性困难。 ,虽然我没看完,但总结下来应该就是这个意思😂需要一个跳板工作的,想一手抓主业,一手抓副业的,不妨看看这个机会~:技术大厂,前端-后端-测试,全国均有机会,感兴趣可以试一试;待遇和稳定性都还可以~ 且不需要你耗费很多“人际关系的心力”在上面。2. 现在"银弹"的实际含义银弹 = 能够解决所有问题的技术、方法或工具技术圈中的典型使用当有人说"xxx是银弹"时,通常意味着:这东西太厉害了,能解决我们所有的烦恼有了它,之前的所有问题都不是问题了别的技术都可以不用考虑了典型例子: // React派 const ReactIsSilverBullet = () => {     return "React才是真正的银弹,解决所有前端问题!"; }; // Vue派 const VueIsSilverBullet = () => {     return "Vue才是银弹,简单易学,性能无敌!"; }; // 微服务派 const MicroservicesAreSilverBullet = () => {     return "微服务就是银弹,拆分后所有扩展问题都解决了!"; }; // Docker派 const DockerIsSilverBullet = () => {     return "Docker就是银弹,一次构建到处运行!"; }; 当有人说"xxx不是银弹"时,意思是:这个技术有局限性,不能解决所有问题不要指望它能一劳永逸还是需要配合其他方案典型例子: -- MySQL不是银弹 -- "MySQL虽然不错,但面对大数据量时还是有限制,不是银弹!" -- K8s不是银弹 -- "K8s功能强大,但运维复杂度很高,不是银弹!" -- 敏捷开发不是银弹 -- "敏捷不是银弹,还需要结合其他工程实践!" 3. 银弹概念的传播路径3. 银弹含义的演变过程原始含义(1986年)核心概念: 能够数量级(10倍)提升软件开发生产率、可靠性和简洁性的技术或方法软件开发的本质复杂性是否存在革命性的突破技术软件工程的基本限制现在的技术圈上普遍的含义能够神奇完全解决具体场景的一系列问题的技术、工具或方法React vs Vue 哪个更好微服务 vs 单体如何选择MySQL vs MongoDB 哪个更适合Docker vs K8s 如何选择总结能很清晰的看到银弹这个词从抽象的架构设计理念,演变成了具体的对某件技术、框架、工具、方法的评价。原本:指软件工程中的架构设计和整体方法论现在:变成了对具体某个技术方案、技术框架的评价工具具体含义变化原始含义:布鲁克斯指的是能否根本上解决软件复杂性的架构方法现在含义:用来评价某个具体技术、框架、工具是否万能也反映了大家讨论技术的时候,越来越具体,越来越落地。 普通人也很难接触到什么太抽象,太宏大的架构设计,我们也更应该关心更具体的方案,来更好的解决问题。——转载自:9号达人#嘉立创PCB#
大家天天说的'银弹'到底是个啥?
开源硬件平台
在很久之前有一期公众号介绍了如何使用HC05来实现蓝牙通信,但是事实上并没有很好的蓝牙通讯助手(手机上调试的是一个广告很多的软件),电脑端是利用另一个蓝牙模块接上CH340转TTL模块,将HC05/06的蓝牙转为串口进行通信。因此本期旨在开发一个蓝牙助手可以直接连接蓝牙模块进行通讯。 框架 利用ESP32来模拟BT蓝牙(BLE低功耗蓝牙后续也会进行测试) C#利用32feet.NET库来实现蓝牙的使用。 准备工作 界面布局 这个界面基本也是搬运至前面的串口助手界面,目前制作了发送和接收界面。并且代码逻辑也比较简单,还需要有很大的修改。 软件流程 (1)初始化扫描蓝牙设备写入选择框 (2)连接蓝牙设备,连接成功则开启监听线程 (3)监听线程接收到数据设置回调函数将接收到的内容显示在文本框上。 (4)点击发送按钮后将文本框的内容发送给接收端。 核心代码 初始化private async void Booth_Init() { try { client = new BluetoothClient(); // 使用 Task.Run 来在另一个线程中执行 DiscoverDevices devices = await Task.Run(() => client.DiscoverDevices()); BoothChoose.Items.Clear(); foreach (BluetoothDeviceInfo device in devices) { // 确保 UI 更新在 UI 线程上执行 this.Invoke((MethodInvoker)delegate { BoothChoose.Items.Add(device.DeviceName); }); Console.WriteLine(device.DeviceName); } // 确保在 UI 线程上修改 SelectedIndex this.Invoke((MethodInvoker)delegate { if (BoothChoose.Items.Count > 0) { BoothChoose.SelectedIndex = 0; } }); } catch (Exception ex) { Console.WriteLine("错误: " + ex.Mege); } } 初始化的代码是使用异步的方式扫描设备,并且将设备名称显示在选择控件上,之所以是采用异步的方式原因是不采用异步会占用UI线程导致UI线程无法使用。所以需要单独开线程来初始化,同时该函数也可以用于重新扫描设备。 蓝牙连接private async void BoothConnect() { try { if (BoothChoose.Items.Count != 0) { string selectedDeviceName = BoothChoose.SelectedItem.ToString(); // 寻找匹配的设备 BluetoothDeviceInfo deviceToConnect = devices.FirstOrDefault(d => d.DeviceName == selectedDeviceName); if (deviceToConnect != null) { // 连接到设备 await Task.Run(() => client.Connect(deviceToConnect.DeviceAddress, BluetoothService.SerialPort)); MessageBox.Show("连接成功", "信息"); if (client.Connected) { stream = client.GetStream(); StartListening(OnDataReceived); // 开始监听数据并指定回调 } } else { MeBox.Show("未找到选定的设备", "警告"); } } else { Messox.Show("未检测到设备", "警告"); } } catch (Exception ex) { Messox.Show("蓝牙连接失败: " + ex.Mesge, "错误"); } } 连接蓝牙的代码,根据选择控件选择的蓝牙名称匹配对应的蓝牙设别,接着使用异步的方式来连接蓝牙,防止连接蓝牙的过程中导致UI线程卡顿无法使用。 并且使用一个Stream流变量来接收蓝牙传输的信息,调用StartListening函数来实现蓝牙设备的监听 监听函数private void StartListening(Action<string> callback) { Task.Run(() => { byte[] buffer = new byte[1024]; // 数据缓冲区 int bytes; try { while (client.Connected) { bytes = stream.Read(buffer, 0, buffer.Length); if (bytes > 0) { string receivedData = Encoding.UTF8.GetString(buffer, 0, bytes); this.Invoke((MethodInvoker)delegate { callback(receivedData); // 在UI线程上调用回调 }); } } } catch (IOException ex) { // 连接丢失或读取错误 this.Invoke((MethodInvoker)delegate { MesBox.Show("读取数据错误: " + ex.Mesge, "错误"); }); } }); } private void OnDataReceived(string data) { if (Receive.InvokeRequired) { // 如果调用线程不是创建Receive控件的线程,则使用Invoke调用 Receive.Invoke(new MethodInvoker(delegate { Receive.AppendText(data); })); } else { // 如果已经在UI线程,则直接更新 Receive.AppendText(data); } } 监听函数中我们异步监听数据,并且设置OnDataReceived回调函数处理接收到的数据。 发送数据private void TransButton_Click(object sender, EventArgs e) { try { // 获取要发送的文本 string dataToSend = TransText.Text; if (NewLine.Checked) { dataToSend += Environment.NewLine; } if (client != null && client.Connected) { Stream stream = client.GetStream(); if (stream.CanWrite) { // 将文本转换为字节数据 byte[] buffer = Encoding.UTF8.GetBytes(dataToSend); // 发送数据 stream.Write(buffer, 0, buffer.Length); } } else { Messox.Show("Bluetooth is not connected."); } } catch (Exception ex) { Messox.Show("Error sending data: " + ex.Mese); } } 效果展示 ESP32中的代码是利用蓝牙传输接收到的信息。 因此我们发送信息会接收到发送的信息。 缺点还有很多,后续将会进行迭代升级
基于C#的软件大杂烩(6.1)——简单的蓝牙助手
嘉立创PCB
我爱嘉立创
硬创社
学习吧
3D打印
社区数据
今日帖子
-
今日互动量
-
在线人数
-
帖子总量
-
用户总量
-
功能讨论
()
主题
打赏记录
服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区