正则表达式可以说是软件开发中最常用的功能之一。本文将以C语言为例,介绍其中的正则表达式相关知识。前言当你想要判断许多字符串是否符合某个特定格式;当你想在一大段文本中查找出所有的日期和时间;当你想要修改大量日志中所有的时间格式,在这些情况下,正则表达式都能帮上忙。简单来说,正则表达...
我们常见的电感是两个腿的,叫做差模电感。今天和大家介绍四个腿的共模电感。▎差模电流与共模电流差模电流:在一对差分信号线上,大小相同,方向相反的一对信号,一般是电路中的工作电流,对于信号线就是信号线与信号地线之间流动的电流。共模电流:在一对差分信号线上,大小相同,方向相同的一对信号...
文|Travis出品|OSC开源社区(ID:oschina2013)近日,国外一位名叫JeffGeerling的开发者购买了一块新的RaspberryPi4ModelB,无意间发现树莓派在该型号上“偷偷”换上了新的SoC,解决了两个此前存在的RAM处理有关的问题。JeffGeer...
程序员的圈子啊那是十分神秘,又令人着迷的。每天的工作就是对着电脑,那他们的工作是如何的呢?我们来品一品(PS:后面奉上各位大佬的桌面,别走开哦)↓↓↓最最常见的普通版:升级版:算不得体贴版:逼退人升级版:舒适版:超人性版:独立版:高级版:友谊版:高级程序员版:干净的其他普通版:一...
什么是算法?简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homasH.Cormen,ChalesE.Leiserson《算法导论第3版》)可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用算法)。算法必须具备如下3个重要特性:有穷性,执行有限步骤后,算法必须中止。确切性,算法的每个步骤都必须确切定义。可行性,特定算法须可以在特定的时间内解决特定问题。其实,算法虽然广泛应用在计算机领域,但却完全源自数学。实际上,最早的数学算法可追溯到公元前1600年-Babylonians有关求因式分解和平方根的算法...
嵌入式工程师分布在各行各业上面,这其中包括了消费电子、工业电子、汽车电子和军用电子等。从功能上面看,嵌入式本身包括了51、mcu、soc、soc+baseband等很多形式。从开发的结构上看,有些同学专注于底层,比如boot;有些同学专注于内核、编译器、cpu、驱动;还有一些同学专注于上层,比如协议、服务器、计算、存储、交互等等,这一层的开发工程师其实和普通的pc开发工程师是一样的。一般来说,嵌入式的开发比其他软件开发要求高一些。除了编译器、内核、调试比较复杂之外,他们常常还需要了解cpu、soc、芯片手册、基本电路。一个真正打通上下层、可以独当一面的工程师,一般需要5-8年的时间。这个中间,...
经常收到同学问一个选择题: 25w的体制内(或者研究所,或者国企),和40w的大厂技术岗offer(和嵌入式有关),选择哪个会比较好呢?首先必须明确,这个选择没有统一标准,每个人要结合自己情况选择适合自己的。这两个选项本身并没有明显的优劣,没有绝对的好坏对错的。可以从以下几个角度来分析之。1自己的家境和目标。人和人真的是不能比的,做选择前必须结合自身家庭情况。一般来说,如果是城二代,即使你父母只是普通城市工薪阶层,至少在城市里房子车子这些基础都有了,父母也都有社保医保来保障,多少也会有些积蓄给你“办大事”。这种情况你可以选择进国企(或者研究所,公务员等体制内)。主要原因是国企等相对工资低一些,...
嵌入式开发中,UART串口是最常见的一种通信接口,你知道为啥串口这么常见吗?本文就带你深入了解串口最底层的本质内容。一、什么是串口通讯?串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。图1:串行通讯示数据传...
知道有多少人折腾过液晶显示的菜单,我觉得很多人都应该搞过,我还记得以前大学参加电子设计竞赛获奖的作品,我就用到了一个12864,里面有菜单功能。以前可能觉得菜单高大上,其实并不是想象中的复杂,本文为大家分享一个用单色屏做的菜单框架。代码托管在github:https://github.com/wujique/stm32f407/tree/sw_arch 公众号回复"菜单"也可获得源码.1、概述本处所说的菜单是用在128*64这种小屏幕的菜单,例如下面这种,不是彩屏上的GUI。2、菜单框架设计作为一个底层驱动工程师,驱动写完了,是要写硬件测试程序的。这个测试程序,一般给测试部/硬件工程师用来测试...
本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处博雯发自凹非寺一个Bug就地蒸发5亿美元;软件设计层面出Bug致6人死亡;DeBug不成功直接世界毁灭。你职业生涯中写过最大的Bug是什么?在这个问题上,勇敢的码农们,总是能不断地创造奇迹。这不禁让路过的一位普通市民感叹:感觉有你们,我们还活在这个世界就像死神来了Bug很大,你忍一下一个Bug到底能有多大?几个历史数据转储逻辑Bug或发货逻辑Bug,就能让几十万轻松蒸发:你们这亏钱的Bug都洒洒水啦,写Bug差点进去的见过没?马上就有码农站出来表示不服,并表示自己参与开发的一款发薪软件曾出现Bug,会导致发放的薪资变成双倍,总...
作为通信协议的两大基础,IIC和SPI两者的应用都非常广泛,上一篇文章讲过了RTT上IIC的移植与实践。《一步到位!教你RT-Thread上设备IIC驱动移植》讲完IIC,自然少不了SPI的相关内容,基于此,本文就来详细说明RT-Thread上设备SPI的移植与实践,SPI的通信...
这两天,网络上疯传一张图片,内容是一家疑似中字头的单位某leader的微信群聊记录。这位leader的发言一经曝光就炸了:“80后的人,真的该退出IT行业了”“我XX真的见不得下了班要回家给老婆孩子做饭的男人”脾气之大,大家还是来自行感受一下吧:看完之后,不知道大家感受如何,我反...
单板上时钟设计的注意事项,主要从三方面考虑。01布局1)时钟晶体和相关电路应布置在PCB的中央位置并且要有良好的地层,而不是靠近I/O接口处。不可将时钟产生电路做成子卡或者子板的形式,必须做在单独的时钟板上或者承载板上。如下图所示,绿色框中部分下一层最好不要走线。 2)在PCB时...
大家好,今天和大家分享一下STM32F103C8T6读写内部flash,关于103系列的单片机大家可以参考选项手册查看flash的容量。一、芯片FLASH容量分类:可以看到我们今天介绍的这款芯片的flash大小是64K的,网上也有人说它可以支持到128K,但是官方给出的解释是前6...
01电路图功能利用555的核心电路产生方波、三角波、正弦波。02电路的工作过程首先,555芯片通过外围电阻电容组成一个多谐振荡器,输出一个方波。555多谐振荡器输出方波后,经电容C1耦合到由R3,C3组成的积分网络。输出三角波。这也是一个电容充放电的过程,过程如下:当555多谐振...