发动态
综合 最新发布 最新回复
图文
列表
谢谢金主
#嘉立创3D打印# #嘉立创3D打印#嘉立创免费3D打印##DIY设计#
3次播放
3D打印
建议3D打印免费券尺寸放宽至10.5*10.5
参考隔壁铝合金壳体免费打样的最大尺寸,方便为10*10的PCB制作外壳
3D打印
在单片机应用程序开发中可能用得比较多有RS485,CAN通信等等相对简洁一点的总线,由于所选用的单片机性能和资源有限,以太网并没有在单片机应用中作为一种普遍存在的对外通信接口。但随着MCU工艺、性能的逐渐加强以及嵌入式Linux平台的推行,以太网通信也慢慢开始成为开发者们所考虑使用的一种可靠通信方式。经常有一些朋友问到,现在用不到技术和知识点是不是可以不用学?我只能回答:技术在不断的革新,并且总是朝着更加便利和通用化方向发展,现在看似非常复杂的技术,在以后的应用上都会得以简化,但即使再简化也还是需要有必备的一些基础和认识,所以总归还是要学的,至于什么时候学就看自己的时间精力了,当然越早学习,就越多一种选择。那么今天就浅谈一下TCP与UDP的区别与应用,并指引后续在系统通信设计上的设计考虑和选择。1、TCP VS UDP 要想在通信的两者之间合理的选择TCP还是UDP,首先需要理清楚两者的特点与区别,下面简单梳理一下:在学习这两种协议的时候你一定看到过这样中一句总结的话:"TCP是面向连接的可靠传输而UDP是无连接的不可靠传输。"其实这句话已经把这两种协议大部分特点都囊括在内了 :1、面向连接与无连接TCP在传输数据之前需要经过三次握手建立连接进行相互确认,当需要断开连接的时候需要进行四次挥手;而对于UDP就不需要这么繁琐的连接建立过程,直接传输即可。所以对于TCP仅仅只支持单播,只能点对点的在连接的两个端点中数据传输数据,不支持多播和广播;而对于UDP而言支持一对多、多对一和多对多的传输,这一点在通信架构设计中对这两种协议的选择非常重要,比如有些资源优先的MCU对socket连接有限等等问题。2、字节流与数据报UDP也称之为是用户数据报协议,而TCP为传输控制协议,所以UDP是一种面向应用报文的传输,有明显的传输边界,仅仅只是封包以后进行处理,不会进行合并和拆分,一次就传输一个报文。但是TCP是一种面向字节流的通信协议,没有明显的边界,其主要是保证数据正确且有序,TCP存在一个数据缓存区,如果数据量较大,其会进行分包发出,而当数据较少也会等待数据达到合适的数量后进行合并发送,所以会存在多个粘包的问题,这一点在设计中需要考虑。3、可靠传输TCP是一种可靠传输,确认重传、差错控制、流量控制和拥塞控制等等都是传输数据过程中实现的策略和算法,这就使得TCP能够达到数据上无差错、不丢失、不重复、有序。所以为了保证这些数据的可靠传输,TCP相比UDP的报文格式要复杂,且占用的资源也相对较多。而UDP则不同,它仅仅只是一种最大努力交付的协议,其主要是利用IP层的无连接传通信服务,可靠性方面它是无法保障的,有点类似于串口通信,它不需要连接,只管传输。如果你想让数据可靠,那么用户可以在应用层自己来增加可靠性传输策略和机制来进行实现,所以Udp传输数据是可能会丢失、无序。4、实时性UDP由于没有拥塞控制等等策略,协议上会轻量很多,其均以比较恒定的速度进行传输,不会出现发送速率降低的问题,所以在网络不好的情况下就丢包了。而对于TCP一旦有数据包丢失,就会进行重传等等一系列机制,传输速度大大降低。2、项目中该怎么选择?对于TCP和UDP的选择有些朋友在开发的时候比较纠结,因为有时候采用UDP和用户方面可靠的传输机制也能够达到TCP类似的效果,比如许多支持可靠通信的UDP库,所以具体怎么选择还是要根据具体的应用和设计。比如对于很多直播、游戏等等通过自己加入一些重传机制,可以最大可能的发挥UDP传输实时性的优点,使得呈现给用户更加流畅的画面体验。在嵌入式、物联网方面由于项目对实时性要求高,且资源有限,UDP相对比较轻量,也是较好的选择。但对于一些文字、文件的数据传输还是会优先使用TCP,毕竟TCP这块在保证数据的可靠性方面还是做得非常成熟,用户程序这块也可以减少一些可靠性处理。所以最终得选择,还是要结合TCP与UDP的特点和具体项目综合考虑。
UDP与TCP在嵌入式项目中该怎么选?
嘉立创PCB
1、!!操作看到交流群里有朋友抛出一段C语言操作:offset = len/64 + !!(len%64); 这两个连续的感叹号把有些人给整蒙圈了,还有些朋友调侃道: !!表示语气加重,事情非常紧急得尽快处理,可把我给整笑了。其实都是常规操作吧,只是这样的写法在正常的编码过程中并不多见。首先这两个!!并不是什么C语言新的关键字,而是!运算符的嵌套作用。!在C语言中叫逻辑非运算符,是一种条件运算符。语法形式 : !(条件) 其中的条件如果是false,则最终整个表达式为true;反之则为false,bug菌提醒一句:要与~进行区分,~是按位取反,很多初学者容易混淆。语法形式 : !!(条件) 所以如上表达式就是两个!的嵌套形式。当然如果你想项目代码中变得无可替代,可以继续如下操作:语法形式 : !!!......!!(条件) 前提是你要自己能看懂。那么回到!!,该操作所达到的效果便是条件逻辑与最终表达式的逻辑结果保持一致:!!(false) == false !!(非false) == true 而对于大部分编译器false对应的是0,而true对应的是1,所以很多同志拿着逻辑结果参与数值运算。offset = len/64 + !!(len%64); 该表达式的用处也非常清楚了,当len不能被64整除,则:offset = len/64 + 1; 获得正确的数据分组个数,这代码应该是来源于存储或者通信中。但bug菌觉得,尽量还是不要操作:逻辑和数值运算最好是分开,以增加代码的可读性和可移植性。2、还有个用处最早看到这种处理方式是在判断一个引脚的高底电平上:u8GPIOLevel = !!(GPIOA_Data &  PIN_2); !!在其中的作用跟之前是一样的,使得表达式的数据结果与条件中的逻辑保持一致,便可以直接获得结果。
C代码中看到"!!",捻了把汗~
嘉立创PCB
直接上色的效果,用免费券打印的没有打磨,直接上色效果也很不错,打磨了效果会更好 #嘉立创3D打印#
3D打印
尊敬的社区成员们 为了进一步激励高质量的内容创作,促进社区内的积极互动和共同成长,我们很高兴地宣布,社区打赏功能正式上线从即日起,您可以通过打赏来支持那些为您带来价值、启发和帮助的作者。您的每一次打赏不仅是对作者的认可,更是对我们共同构建一个更加活跃、有深度交流社区的支持。 为什么我们需要打赏功能? 打赏功能旨在为优质内容创作者提供额外的激励,确保他们能够持续产出有价值的内容。同时,这也有助于营造一个积极健康的社区氛围,让每位成员都能从中受益。 如何使用打赏功能? 浏览内容:阅读或观看您感兴趣的帖子。 选择打赏:如果您觉得某个帖子特别有价值或令人印象深刻,请点击“打赏”按钮。 确认金额:根据个人意愿选择合适的打赏金额(金额范围会随机展示)。 完成打赏:按照提示完成支付流程。 特别提示: 为了鼓励新用户积极参与社区活动并提升自己的等级,等级为1的用户所发布的帖子暂时不开放打赏功能。我们希望通过这种方式激励大家多多参与讨论、发表优质内容,快速升级,解锁更多功能和特权。快来提升等级,让更多人认可您的贡献吧! 我们的打赏标准 为了确保打赏能够真正奖励到值得表彰的内容,我们制定了以下打赏标准: 1. 内容质量(占主要) 原创性:内容必须是原创作品,严禁抄袭或复制他人内容。 实用性:内容应具有实际应用价值,如解决问题的方法、经验分享等。 准确性:信息真实可靠,无误导性陈述。 完整性:内容完整,逻辑清晰,表述准确。 2. 帖子类型 科普帖:介绍电子/机械行业的知识、技术原理和行业动态。要求内容详实、通俗易懂,避免软广告性质。 经验贴:分享个人的工作经验、技能技巧和心得体会。要求内容具有参考价值,操作性强。 分享贴:记录个人的工作/学习经历、生活感悟或旅行见闻。要求情感真挚、语言生动。 讨论贴:提出问题,引发讨论。要求观点鲜明、言之有物,激发社区内的思想碰撞和深入交流。 3. 社区互动 评论互动:帖子能引起其他用户的广泛讨论,评论区有建设性的意见交换。 回复质量:作者积极回应评论,与读者进行良好互动,展现出对社区的重视和责任感。 4. 创新性 独特视角:内容提供独特的视角或新颖的观点,让人耳目一新。 创新形式:采用新颖的形式呈现内容,如图文并茂、视频解说等,提升阅读体验和信息传递效果。 打赏后如何提取打赏金? 为了方便内容创作者将获得的打赏金额提取到个人账户,我们提供了简便的提取打赏金流程: 实名认证:在个人中心中找到“个人中心-创作激励tab”,点击“去提取”完成首次实名认证。 申请提取:实名认证后,点击“去提取”输入提取金额验证手机号后提交 ​ 提交审核:提交提取申请后,系统会自动审核您的提取请求。通常情况下,审核时间为7个工作日内。 完成提取:审核通过后,款项将按照您选择的方式转入指定账户。请注意,不同提取方式可能有不同的到账时间。 我们期待您的积极参与 我们鼓励每位社区成员多发打赏,支持那些为您带来价值的作者。通过打赏,您可以表达对优质内容的认可,同时也是在推动整个社区的进步和发展。 感谢大家一直以来对社区的支持和贡献。让我们共同努力,打造一个充满活力和创造力的优质社区!
【官方公告】社区打赏功能正式上线,鼓励优质内容创作
硬创社
免费券打印小摆件
#嘉立创3D打印# 效果非常好,肉眼看几乎看不出层纹,用手机拍照能看得出,也送了砂纸方便打磨,非常贴心。赞一个
3D打印
用免费打样券打了头壳非常萌 #嘉立创3D打印#
3D打印
有没有大哥帮我分析一下电路,呼吸灯为什么不亮
开源硬件平台
不同的板子拼在一起贴片可以节省工程费换料费,但目前eda拼板工具只支持同款板拼板,是否考虑增加多款板拼板功能?
嘉立创EDA
不太理解太阳能板的电极设计
买了一块多晶太阳能板,背面有3个电极,标+的那个电极好像是空的,我测了红框里的才是真正的+。每个电极又有多个焊盘。搞不懂为什么这样,有大佬能为我们解释下吗 #DIY设计#
硬创社
专业版商城可以找到TLP2355,但是放置时咋找不到
嘉立创EDA
命令行启动后,只显示 “立创开发板logo ”
1、泰山派 2+16 版本 Ubuntu 20.04 桌面启动,日常使用不需要桌面UI ,切换到命令行启动后,只显示 “立创开发板logo ”, 2、终端 执行 sudo systemctl set-default multi-user.target 后重启。
立创开发板
这个CYUSB3014板子,应该怎么进boot模式?两个spi flash空白的话,typec接口连电脑可以进入boot模式,刷上厂家的固件,之后就隐藏了boot模式,这时候咋再次进入boot呢?右边那个接口功能不知道
开源硬件平台
免费打样
用免费打样券打了好几个部位,层纹很浅用送的砂纸稍微磨一下就能用,总体很不错
3D打印
只有.gcode格式的文件可以帮我转换为stl文件并打印吗?
3D打印
社区数据
今日帖子
-
今日互动量
-
在线人数
-
帖子总量
-
用户总量
-
推荐话题 换一批
#嘉立创PCB#
#DIY设计#
#畅聊专区#
#创享2025#
#嘉立创3D打印#
#嘉立创免费3D打印#
#618金豆嗨购节#
#高校动态#
查看更多热门话题
功能讨论
()
主题
打赏记录
粤公网安备44030002004666号 · 粤ICP备2023121300号 · 用户协议 · 隐私政策 · 侵权举报 · ISO/IEC · Copyright © 2024 嘉立创社区版权所有
服务时间:周一至周六 9::00-18:00 · 联系地址:中国·深圳(福田区商报路奥林匹克大厦27楼) · 媒体沟通:pr@jlc.com · 集团介绍
移动社区