50

嵌入式Linux开发学习之Ubuntu下文本编辑

进行文本编辑是最常用的操作,Windows下我们会使用记事本来完成,或者其它一些优秀的文本编辑器,比如notepad++,Ubuut下有一个自带的文本编辑器,那就是Gedit。Gedit是一个窗口式的编辑器,关于Gedit的使用前面我们已经讲解了。本文我们重点讲解的是另外一个编辑器:VI/VIM编辑器。我们如果要在终端模式下进行文本编辑或者修改文件就可以使用VI/VIM编辑器,Ubuntu自带了V...

30

嵌入式Linux开发之Ubuntu下APT下载安装工具的使用

对于长时间使用Windows的我们,下载安装软件非常容易,Windows下有很多的下载软件,Ubuntu同样有不少的下载软件,本节我们讲解Ubunut下我们用的最多的下载工具:APT下载工具,APT下载工具可以实现软件自动下载、配置、安装二进制或者源码的功能。APT下载工具和我们前面讲解的install命令结合在一起构成了Ubunut下最常用的下载和安装软件方法。它解决了Linux平台下一安装软件...

60

嵌入式Linux开发之终端Shell命令行操作

Ubuntu(Linux)终端操作,会涉及到很多命令,但是常用的命令就那几十个,不需要刻意的去背,使用习惯了就自然记住了。不要看到要记命令就觉得可怕。根据2080原则,80%情况下只使用那20%的命令,实际情况会更少,常用的可能就那5%~10%的命令。打开中端打开终端以后如图所示:终端界面我们就是在图所示界面上输入命令的,终端默认会有类似下面一行所示的一串提示符:zuozhongkai@zuozh...

50

嵌入式Linux开发之Ubuntu系统初体验

上一篇文章中我们已经安装好了Ubuntu操作系统,我们再来回顾一下如何开机:打开VMware虚拟机软件,打开以后如图所示:VMware主界面打开VMware上的开机按钮,打开方式如图所示:VMware开机按钮点击图中两个开机按钮中的任意一个就会打开Ubuntu操作系统,首先进入下图所示的登陆界面,输入密码即可进入系统。Ubuntu登陆界面在登陆界面输入密码,进入系统主界面:Ubuntu主界面进入主...

40

嵌入式Linux开发之虚拟机Vmware Pro 15安装Ubuntu系统教程

Linux的开发需要在Linux系统下进行,这就要求我们的PC主机安装Linux系统,我们选择Ubuntu这个Linux发行版系统。本文讲解如何安装虚拟机,以及如何在虚拟机中安装Ubuntu系统,安装完成以后如何做简单的设置。不是安装Ubuntu吗?怎么要先安装虚拟机呢?虚拟机是个啥?相信大部分第一次安装Ubuntu的人都会有这个疑问。我不能直接安装Ubuntu吗?能不能不要虚拟机呢?答案是肯定可...

70

模拟电子技术为什么不好学,看了这些你就明白了

对于刚接触半导体电子技术时间不长的小伙伴们来说,大家普遍会感觉模拟电子技术不是太好学,不如数字电子技术容易理解。为什么好多人会有这种感觉呢?主要是模拟电子技术存在以下几个特点,另外一些教材和资料讲解上也存在诸多问题。大家有没有这种感觉,看教材就等于看天书!对抽象能力要求高半导体技术与高中时学的基本电学知识有明显区别,基本电学知识有些电学的量是很明确的,有就是有,没有就是没有,但是半导体电子学有些电...

200

对C语言程序中二维数组赋值时,为什么改变顺序效率就降低了?

学习C语言最有效的方法就是多做实验,很多初学者深知这一点。小明在学到二维数组时,尝试写了一段给二维数组赋值的代码,他发现一个奇怪的现象:交换赋值顺序,效率是不同的。请看下面这两段C语言代码:版本1inttest1() { inti,j; staticintx[4000][4000]; for(i=0;i<4000;i++){ for(j=0;j<4000;j++){ x[j...

250

引脚输出的隐藏BUG | 深入思考

最近在看一个接手项目的时候,突然发现了看门狗(外部看门狗)程序中有这么一条喂狗语句:GPIOC->ODR^=(uint16_t)0x01;不知道各位道友看到这条语句的第一想法是什么(当时这条语句被宏定义包装了的)?看到这么一条语句的时候,鱼鹰第一感想是:坏了,这条语句会出大问题,所以我毫不犹豫的修改了这条语句。因为这条语句本意是翻转电平,而且是一个宏定义,所以我直接将这个宏删掉,由函数进行替...

160

有趣的问题,C语言程序中,为什么十六进制数字以前缀0x开头呢?

C语言允许程序员逐位操作变量,此时,最直观的数字表示方式自然是二进制。不过这样常常会让数字看起来过长,例如十进制的255使用二进制表示为11111111,因此,在C语言程序开发中,为了程序员阅读代码的方便,需要逐位操作变量时,常常使用十六进制。0xFF看起来可比0b11111111直观多了。在C语言中,为什么十六进制的数字前缀用0x呢?在C语言中,十六进制的数字常常以0x或者0X前缀开头,这是印在...

150

有C语言程序员说,使用移位操作代替乘除运算效率更高,真的吗?

在C语言程序开发中,一些移位操作似乎可以达到与乘除法操作一样的效果。例如,4>>1等于2,此时右移一位相当于除以2。类似的,2<<1等于4,此时左移一位相当于乘以2。因此,有些教材推荐使用移位操作代替乘除操作,称可以为最终的C语言程序带来效率上的提升,那么真的如此吗?得到答案最简单直接的方法是做实验,下面是两段关于哈希算法的C语言程序,请看:unsignedinthash(...

220

有趣的C语言语法:i++和++i的执行效率一样高吗?

本节来讨论一个比较有趣的话题:C语言中的i++和++i,编译为程序后,它们的执行效率一样吗?i++; ++i;就C语言代码来看,i++和++i都只有一行,看起来似乎二者的执行效率一样了?其实不是的,在学习C语言时,教材和老师一般都会强调i++和++i的区别,例如下面这段C语言代码:inti,j,k; i=0; j=i++; i=0; k=++i;这段C语言代码执行后,j和k的值并不相等:...

210

有经验的C语言程序常说的“内存对齐”,原因究竟是什么?

在C语言程序开发中,有时有经验的程序员会提起内存对齐一词,事实上,这也是C语言中结构体的size不等于它所有成员size之和的原因(C语言中的结构体的size,并不等于它所有成员size之和,为什么?),那么,C语言程序为什么要内存对齐呢?C语言程序为什么要内存对齐呢?为什么要内存对齐?C语言编译器在处理代码时,常常会将一些变量的内存对齐,这其实主要是因为底层处理器的限制。对于多数处理器而言,每次...

230

电路图的解读与绘制规则

什么是电路图电路图是用各种电气符号、带注释的方框、简化的外形表示系统、设备、装置、元器件相互关系的电气图。电路图的功能人们在安装、调试、维修和研究电气设备时,只要拿着一张图纸就可以分析电路,而不必把电路板翻来覆去地察看,看电路图不仅省时,而且省力。同样,设计电路的工作也可以从容地在纸上或计算机上进行,从而提高了工作效率。电路图的分类及识读电路图按功能可分为原理图、方框图、接线图和印制板图等。1.原...

200

时序的基本概念

建立和保持时间建立时间(Tsu)是指在时钟上升沿到来之前数据必须保持稳定的时间,保持时间(Th)是指在时钟上升沿到来以后数据必须保持稳定的时间。一个数据需要在时钟的上升沿被锁存,那么这个数据就必须在这个时钟上升沿的建立时间和保持时间内保持稳定。建立时间与保持时间的示意图如图3-1所示。图3-1建立时间和保持时间示意图在FPGA设计的同一个模块中常常同时包含组合逻辑与时序逻辑,为了保证在这些逻辑的接...

300

ST推出超高性价比单片机,只有8个引脚,功能强大,价格便宜

说起单片机,大家都想到的是引脚数众多,体积较大,如48引脚的LQFP48、100引脚的LQFP100,40引脚的DIP40等。但是在做一些小项目的时候,需求简单功能不复杂,用多引脚单片机比较浪费,这时候该怎么办?有没有一些不需要太多的片上资源、引脚较少、价格便宜的单片机?1-8引脚单片机ST的8引脚单片机半导体巨头ST就推出了只有8个引脚的单片机。之前提到8引脚的单片机,大家马上就联想到Micro...

240

ALLEGRO中颜色设置中,为什么有很多层是重复的,有什么区别?

CADENCEALLEGRO是一个很复杂的PCB设计软件,它比较严谨。这种软件严谨风格就能让设计者会少犯错误,提高了设计风险。图1今天上尉Shonway就给大家分享一个习惯问题,也是题目中说到的,在ALLEGRO颜色设置中有一些层是重复的,比如BOARDGEOMETRY类下面有个Silkcreen_top,Silkcreen_bottom,但在PACKAGEGEOMETRY类目下也有一个Silkc...

270

Altium Designer如何对原理图自动生成元器件库?

AltiumDesigner线路板设计软件大家都比较熟悉,从高校中protel99se到protelDXP再到AltiumDesigner各个版本都是一脉相承的,线路板从构思到实物打样经过原理图和PCB两大方面,设计过程中少了库这个概念,即使现在AD安装包里包含了越来越多知名厂家的元器件库,但实际操作过程中很多同事还是习惯自己绘制相应的元器件库以及封装库,然后不断累积形成自己的元器件库和封装库,基...

330

「STM32 」EEPROM(AT24C02)的IIC操作实验

我们使用I2C来操控一个EEPROM(AT24C02)实现数据的读写。AT24C02的datasheet可直接在网上下载下来,此刻我们只关注一些重要的芯片信息了:管脚如下:SDA和SCL为I2C总线,vcc和vss分别为电源和地,wc为写保护,mode为模式选择,E0~E2为设置该设备地址的,它是主设备识别的唯一标识。AT24C02可认为是一个从设备,主设备为我的STM32。怎么设置AT24C02...

320

「DC motor control 」 3.直流减速电机的转速控制

我们先从一个常识现象入手:对于一般的单片机,假如是avr单片机,它的io口有输出5v的能力,当我们5v输出的时候,电机是转的最快的,但我们供电设备由于一定时间的使用,电量不足的时候,你会发现电机的速度会越来越慢的。从这个例子我们能得到一个简单的结论:电机的转速和供电的电压有很大关系。我们可以来搭建这样一个电路:扭动滑动变阻器,我们就可以控制电机的转速了。但是这种控制是不理想的,我们需要使用微控制器...

220

「DC motor control 」 2.直流减速电机的方向控制

前面的文章中,我们说直流减速电机的控制,不外乎控制两个量就好了,一个是方向一个是速度。今天我们就来说说怎么使用单片机或者其它控制器来对直流减速电机的方向进行控制。我们都有这么一个通识的认知:对于直流电机,我们给它接两个线,一正一负,电机就动起来了,并且朝一个方向一直运动,当我们交叉两个线的时候即对调正负极的时候,电机的转速是不变的,但是电机的旋转方向却发生了变化,方向了。从这个小案例里面其实也折射...

260

「DC motor control 」 1.初识直流减速电机

这是电磁学中一个非常重要的启蒙实验:据说在1820年4月21日的晚上,丹麦物理学家、化学家奥斯特在无意中接通电源的时候,发现了中间的那个小磁针微微的移动了一下,然后停在了与导线垂直的方向上,据说他欣喜若逛,在后续的研究中,他又加大了通电的电流,那个时候用的还是伏打电池,据说一次就用了20多个,小磁针竟然神奇的移动了起来。他得出了一个结论:电真的能生磁。遗憾的是他没有再去继续的研究,有时候真的也是这...

发布经验,赚取声望值,帮助更多的技术开发者!

写经验

热门作者