A. 单片机开发板是什么啊
单片机开发板呢,顾名思义就是拿来搞开发的板子,而这个板子与其它电路板有所不一样,这个板子拿来搞开发可以实现很多功能,就会留出很多接口给用户,用户自己来开发这些接口的功能,在以后的工作中也会接触到很多开发板,这些开发板是拿来做开发和技术验证的,在开发板上把技术验证成功之后就会做真机开发了,而真机开发就不会像开发板那样留接口了,(嵌入式嘛)只完成产品特定的功能就可以了。而在学习阶段呢,有一块自己的开发板再好不过,学习了理论知识之后除了在实验室,自己就可以用自己的开发板完成很多学习和实际操作。简单明了的说开发板因为留了很多接口给用户可以完成这个领域几乎所有技术的实现和学习,拿来学习搞开发的。
简单的板子可以学学C51单片机,如果你是要搞嵌入式的话51是最基础的也是最最低端的这个现在很少人都只是拿来做入门的东西了很多人玩智能车就用这个,中端一点的可以是STM32的arm-cortex m系列的微控制器,这一类的本人就在用一块stm32 f4 的板子,高端一点的板子一般就是系统级别的了一般都会移植操作系统了,比如嵌入式linux等,而这一类的开发板市面上很多cpu的类型也很多比如我现在就在用入门级别的s3c2440(基于arm9单核)cpu的 也在用高端一点的exsny 4412(基于 arm a9 4核 与三星note2相同的cpu)的板子。
这类东西淘宝一下就会知道很多产品了!!!
B. vmstat在linux中是什么命令
vmstat是一个提供报告虚拟内存统计的工具,包括了系统内存、交换和实时处理器利用率。
命令详解
【命令星级】 ★★★★☆
【功能说明】
vmstat是Virtual Memory
Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。
【语法格式】
vmstat [option] [delay [ count]]
vmstat [选项] [时间间隔[次数]]
说明:
1)在vmstat命令及后面的选项里,每个元素之间都至少有一个空格。
2)delay表示两次输出之间的间隔时间。
3)count表示按照delay指定的时间间隔统计的次数。
【选项说明】
表11-4针对该命令的参数选项进行了说明。
使用范例
范例11-12:显示虚拟内存使用情况。
[root@oldboy ~]# vmstat #<==如果省略“间隔时间”和“次数”参数,则仅显示一次报告后就退出
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 71756 38600 279084 0 0 24 6 15 18 0 0 100 0 0
[root@oldboye ~]# vmstat 5 #<==表示每5秒钟更新一次输出信息,循环输出,按Ctrl+C组合键停止输出。
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 8 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 9 0 0 100 0 0
^C
[root@oldboye ~]# vmstat 5 6 #<==表示每5秒更新一次输出信息,统计6次后停止输出。
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 8 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
[root@oldboy ~]#
以下是命令结果说明。
第1列:procs。
q r列表示运行和等待CPU时间片的进程数。
q b列表示在等待资源的进程数。
第2列:memory。
q swpd列表示使用虚拟内存大小。
q free列表示当前空闲的物理内存数量。
q buff列表示buffers 的内存数量。
q cache列表示cache的内存数量。
第3列:swap。
q si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
q so(swap out)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。
第4列:I/O项显示磁盘读写状况。
q bi列表示从块设备读入数据的总量(即读磁盘)(块/s)。
q bo列表示写入到块设备的数据总量(即写磁盘)(块/s)。
第5列:system显示采集间隔内发生的中断数。
q in列表示在某一时间间隔中观测到的每秒设备中断数。
q cs列表示每秒产生的上下文切换次数。
第6列:CPU项显示了CPU的使用状态。
q us列显示了用户进程消耗的CPU时间百分比。
q sy列显示了系统(内核)进程消耗的CPU时间百分比。
q id列显示了CPU处在空闲状态的时间百分比。
q wa列显示了IO等待所占用的CPU时间百分比。
q st列显示了虚拟机占用的CPU时间的百分比。
范例11-13:显示活跃和非活跃内存。
[root@oldboy ~]# vmstat -a 2 5
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 0 71804 160408 165848 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 160408 165844 0 0 0 0 11 11 0 0 100 0 0
0 0 0 71756 160408 165844 0 0 0 0 12 9 0 0 100 0 0
0 0 0 71608 160412 165672 0 0 0 1302 218 341 12 9 80 0 0
0 0 0 71608 160412 165672 0 0 0 0 10 9 0 0 100 0 0
使用-a选项显示活跃和非活跃内存时,所显示的内容除增加了inact和active外,其他显示内容与范例11-12相同。
在Memory列增加的inact和active两列,说明如下。
q inact: 非活跃内存大小(当使用-a选项时显示)。
q active: 活跃的内存大小(当使用-a选项时显示)。
范例11-14:查看内存使用的详细信息。
[root@oldboy ~]# vmstat -s
486640 total memory
414572 used memory
165656 active memory
160420 inactive memory
72068 free memory
……
这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。
范例11-15:查看磁盘的读/写。
[root@oldboy ~]# vmstat -d
disk- ------------reads------------ ------------writes-----------
-----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
……
sr0 0 0 0 0 0 0 0 0 0 0
sda 14667 3623 594388 6737 12864 32806 365372 44250 0 30
这些信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作。
范例11-16:查看/dev/sda1磁盘的读写统计信息。
[root@oldboy ~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes
502 4162 14 68
这些信息主要来自于/proc/diskstats。各列的说明如下。
q reads:来自于这个分区的读的次数。
q read sectors:来自于这个分区的读扇区的次数。
q writes:来自于这个分区的写的次数。
q requested writes:来自于这个分区的写请求次数。
摘自:跟老男孩学Linux运维:核心系统命令实战 第11章 版权归原作者所有
C. 关于C语言入门
【书名】 新概念51单片机C语言教程——入门、提高、开发、拓展全攻略(含光盘1张)
【作者】
【作译者】 郭天祥
【出版社】 电子工业出版社
【ISBN】 978-7-121-07893-4
【定价】 69.00元
【出版日期】 2009-01
【页码】
【版次】
【装帧】
【开本】 16
▼内容简介
本书从实际应用入手,以实验过程和实验现象为主导,循序渐进地讲述51单片机C语言编程方法以及51单片机的硬件结构和功能应用。全书共分5篇,分别为入门篇、内外部资源操作篇、提高篇、实战篇和拓展篇。本书内容丰富,实用性强,书中大部分内容均来自科研工作及教学实践,许多C语言代码可以直接应用到工程项目中。本书配套光盘提供13讲近30学时的教学视频和本书实例代码,可使读者更快更好地掌握单片机知识和应用技能。本书作者还可提供与本书配套的单片机实验板。
本书可作为大学本、专科单片机课程教材,适合于51单片机的初学者和使用51单片机从事项目开发的技术人员,也可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考。
▼图书目录
第1篇 入 门 篇
1.1 单片机概述
1.1.1 什么是单片机
1.1.2 单片机标号信息及封装类型
1.1.3 单片机能做什么
1.1.4 如何开始学习单片机
1.2 51单片机外部引脚介绍
1.3 电平特性
1.4 二进制与十六进制
1.4.1 二进制
1.4.2 十六进制
1.5 二进制的逻辑运算
1.5.1 与
1.5.2 或
1.5.3 非
1.5.4 同或
1.5.5 异或
1.6 单片机的C51基础知识介绍
1.6.1 利用C语言开发单片机的优点
1.6.2 C51中的基本数据类型
1.6.3 C51数据类型扩充定义
1.6.4 C51中常用的头文件
1.6.5 C51中的运算符
1.6.6 C51中的基础语句
1.6.7 学习单片机应该掌握的主要内容
2.1 Keil工程建立及常用按钮介绍
2.1.1 Keil工程的建立
2.1.2 常用按钮介绍
2.2 点亮第一个发光二极管
2.3 while语句
2.4 for语句及简单延时语句
2.5 Keil仿真及延时语句的精确计算
2.6 不带参数函数的写法及调用
2.7 带参数函数的写法及调用
2.8 利用C51库函数实现流水灯
第2篇 内外部资源操作篇
3.1 数码管显示原理
3.2 数码管静态显示
3.3 数码管动态显示
3.4 中断概念
3.5 单片机的定时器中断
4.1 独立键盘检测
4.2 矩阵键盘检测
5.1 模拟量与数字量概述
5.2 A/D转换原理及参数指标
5.3 ADC0804工作原理及其实现方法
5.4 D/A转换原理及其参数指标
5.5 DAC0832工作原理及实现方法
5.6 DAC0832输出电流转换成电压的
方法
第6章 串行口通信原理及操作流程
6.1 并行与串行基本通信方式
6.2 RS-232电平与TTL电平的转换
6.3 波特率与定时器初值的关系
6.4 51单片机串行口结构描述
6.5 串行口方式1编程与实现
6.6 串行口打印在调试程序中的应用
第7章 通用型1602,12232,12864液晶
操作方法
7.1 液晶概述
7.2 常用1602液晶操作实例
7.3 常用12232液晶操作实例
7.4 常用12864液晶操作实例
第8章 I2C总线AT24C02芯片应用
8.1 I2C总线概述
8.2 单片机模拟I2C总线通信
8.3 E2PROM AT24C02与单片机的通信
实例
第9章 基础运放电路专题
9.1 运放概述及参数介绍
9.2 反相放大器
9.3 同相放大器
9.4 电压跟随器
9.5 加法器
9.6 差分放大器
9.7 微分器
9.8 积分器
第3篇 提 高 篇
第10章 定时器/计数器应用提高
10.1 方式0应用
10.2 方式2应用
10.3 方式3 应用
10.4 52单片机定时器2介绍
10.5 计数器应用
第11章 串行口应用提高
11.1 方式0应用
11.2 方式2和方式3应用
11.3 单片机双机通信
11.4 单片机多机通信
第12章 指针
12.1 指针与指针变量
12.1.1 内存单元、地址和指针
12.1.2 指针变量的定义、赋值与
引用
12.2 指针变量的运算
12.3 指针与数组
12.3.1 指针与一维数组
12.3.2 指针与多维数组
12.4 指针与函数
12.4.1 指针作为函数的参数
12.4.2 指向函数的指针
12.4.3 指针型函数
12.5 指针与字符串
12.5.1 字符串的表达形式
12.5.2 字符指针作为函数参数
12.5.3 使用字符指针与字符数组的
区别
12.6 指针数组与命令行参数
12.6.1 指针数组的定义和使用
12.6.2 指向指针的指针
12.6.3 指针数组作为main()函数的命令行
参数
12.7 指针小结
12.7.1 指针概念综述
12.7.2 指针运算小结
12.7.3 等价表达式
12.8 C51中指针的使用
12.8.1 指针变量的定义
12.8.2 指针应用
第13章 STC系列51单片机功能介绍
13.1 单片机空闲与掉电模式应用
13.2 “看门狗”概念及其应用
13.3 用软件实现系统复位
13.4 内部扩展RAM的应用
13.5 扩展P4口的应用
13.6 内部E2PROM的应用
13.7 STC89系列单片机内部A/D应用
13.8 STC12系列单片机内部A/D应用
13.9 STC12系列单片机的PCA/PWM
介绍
13.10 STC12系列单片机的SPI接口
介绍
13.11 STC12系列单片机的“576MHz”超速
运行
第4篇 实 战 篇
第14章 利用51单片机的定时器设计一个
时钟
14.1 如何从矩阵键盘中分解出独立按键
14.2 原理图分析
14.3 实例讲解
第15章 使用DS12C887时钟芯片设计
高精度时钟
15.1 时钟芯片概述
15.2 DS12C887时钟芯片介绍
15.3 如何用TX-1C实验板扩展本实验
15.4 原理图分析
15.5 实例讲解
第16章 使用DS18B20温度传感器设计
温控系统
16.1 温度传感器概述
16.2 DS18B20温度传感器介绍
16.3 实例讲解
第17章 太阳能充/放电控制器
17.1 控制器原理图分析
17.2 控制器板上元件介绍
17.3 实例讲解
第18章 VC、VB(MSCOMM控件)与
单片机通信实现温度显示
18.1 VC MSCOMM控件与单片机通信实现
温度显示
18.2 VB MSCOMM控件与单片机通信实现
温度显示
第5篇 拓 展 篇
第19章 使用Protell 99绘制电路图全
过程
19.1 绘制电路板概述
19.2 建立工程
19.3 制作元件库
19.4 添加封装及制作PCB封装库
19.5 错误检查及生成PCB
19.6 布线电气特性设置
19.7 自动布线和手动布线
第20章 ISD400x系列语音芯片应用
20.1 ISD400x系列语音芯片介绍
20.2 ISD400x系列语音芯片操作规则
20.3 ISD400x系列语音芯片应用实现
第21章 电机专题
21.1 直流电机原理及应用
21.2 步进电机原理及应用
21.3 舵机原理及其应用
第22章 常用元器件介绍
22.1 二极管
22.2 电容
22.3 场效应管
22.4 光耦
22.5 蜂鸣器
22.6 继电器
22.7 自恢复保险
22.8 瞬态电压抑制器
22.9 晶闸管(可控硅)
22.10 电荷泵
第23章 直流稳压电源专题
23.1 整流电路
23.2 滤波电路
23.3 稳压电路
23.4 集成稳压模块的使用
23.5 串联开关型稳压电源
第24章 运放扩展专题
24.1 简单低通滤波器
24.2 “电流-电压”转换电路
24.3 光电放大器
24.4 精密电流源
24.5 可调参考电压源
24.6 复位稳定放大器
24.7 模拟乘法器
24.8 全波整流器和平均值滤波器
24.9 正弦波振荡器
24.10 三角波发生器
24.11 自动跟踪对称电源
24.12 可调实验电源
24.13 运放相关术语表
附录A 天祥电子开发实验板简介
A.1 TX-1C 51单片机开发板(配套详细
视频教程)
A.2 AVR单片机开发板(配套详细视频
教程)
A.3 PIC单片机开发板(配套详细视频
教程)
A.4 J-Link全功能ARM仿真器
A.5 三星S3C44B0 ARM7入门级开
发板
A.6 三星S3C44B0 ARM7提高级开
发板
A.7 TX-51STAR 51单片机开发板(配套
详细视频教程)
参考文献
D. 学习单片机怎么入门
循序渐近,一点点吃透学习,方法如下:
1、选择一本好教材,建议《51单片机轻松入门
基于STC15W4K系列》这本,内容新,讲解透彻,有配套视频可辅助参考,不管是初学入门还是已经懂得单片机皮毛,满足所有需求。
2、有了书就要理解意思,所以要吃透教材,看不懂也不要紧,多看,多问,在问题中寻找学习方向。
3、选择配套产品,不要在乎板子的资源多少,推荐吴鉴鹰的单片机,开发板性价比高;软件建议用Keilc51,硬件要有pc机和开发板,开发板要求有流水灯、数码管、独立按键、矩阵键盘、ad转换、液晶屏、蜂鸣器,这就差不多了。其它不明白的就网上找视频找教程,总会有解答的东西。
4、操练起来,从最基本的流水灯开始,试着先控制一个发光管,慢慢的变换花样,做出自己的个性来。
5、带着问题解决问题,一开始先不要找人请教,自己试,这样记忆最深刻,也最有效果,但也不要钻牛角尖,实在不行就问,要不刚建立起来的那点想法就打击没有了。
6、当技术水平,学习方法,心理素质都达到一定的境界了,就算入门了,接下来就要看个人的努力和悟性怎样了,当然在学习单片机的过程中必须遵循一定的原则,坚守住一定的底线,这样才能用最少的经历,在最短的时间内获得大的进步。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
E. 我想学嵌入式linux方向 我想请问用学linux下的QT程式设计吗 有必要学吗
嵌入式linux方向 ?? 这还是有很多的方向的啊
嵌入式系统分为4层, 硬体层、驱动层、作业系统层和应用层。
建议你先看这本书 嵌入式资料整合第一辑.pdf
零基础建议先学习C语言。 然后从微控制器MCS51入门,初期可以选择用protues模拟,积累到一定程度可以买普中开发板(MCS51和STM32一体的)。初学MCS51不要过分依靠教科书,汇编视个人情况而定,有困难不要死抠。 C51的一些关键知识点: 二进位制与16进位制换算,KEIL等开发环境,下载等C语言基础就不说了。 流水灯、数码管、独立按键、定时器、16*16键盘、点阵、LCD1602、12864、DS18B20这些都是常用的,开发板也有例子,照着学下来。 如果C51玩的很遛了可以选择完STM32F103C8,熟悉一下ARM核心。C8和MCS51差不多,资源很富一些。需要注意的是STM32采用韧体库程式设做巧薯计,入门以后配置起来比51更容易。 C8差不多了可以玩STM32F103ZET6这类的板子,这时候玩玩像USB、SD、乙太网之类的高阶货。熟悉一下各类协议栈、RTOS之类。 如果ZET6也玩的很遛了嵌入式底端应聘个5k~7k以上的岗位不在话下了。 再纯者想深入一下可以试着玩一下linux、ARM9或A8。这时候就可以往系统的概念走了
在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条
汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话
也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方
法是多写程式多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析
。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C
、纯数学、纯逻辑的题目,不涉及接口这些东西,创客学院的嵌入式视讯很适合提高
你的程式设计能力。
平台有很多,跟你选择的学习平台有关系,是否具有真实企业案例的学习和实战是一大参照。推荐你可以学习华清创客学院的教程,每个知识点都有对应的案例,理解起来很容易,零基础入门的量身教程。线上问答让你的每天的问题可以得到及时的解答,不留尾巴。课程内容干货多,废话少,互动式让枯燥的课程变得生动有趣,加强你的学习欲望。
如果在北京的话,推荐你去荣新IT培训中心,我有朋友就在那培训的,现在上班了,工资很高呢
嗯,很多学校都学ARM,我们老师文全刚还出了一本书,基于ARM的汇编程式设计,目前唯一一本基于ARM汇编的教材
目前我在联想网路公司实习,我觉得,公司的产品会升级,CPU也可能会换,所以学习以ARM为例,但不要只看ARM,有几门课程我觉得比较重要:linux作业系统、作业系统原理、微机原理、计算机网路(嵌入式离不开网路啊)、资料结构、C语言
我们的课程还有windows CE.程式设计、硬体描述语言、计算机组成原理等
我是在粤嵌-嵌入式学校学习的,他们的教学理念很不一样,他们可以免费试听有兴趣可以去看看。
ubuntu ?用处不大。
其实你主要会用,任何 Linux 都可以用。但你如果连 Linux 都不会,那么任何 Linux 都不够你用。
建议装 Fedora 学习。至少安装开发部分的软体包方便,实在不行可以选择全部安装。
至于嵌入式开发,那么至少 Linux 必须精通。注意是开发精通,而不是用精通。最主要的还是看你嵌入式开发哪方面了。
学习嵌入式linux之前必须要做好心理准备:
第一,要明白学好嵌入式linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期,由于在linux中,使用者许可权很大,做任何事情都很自由,所以,你往往需要知道你做的每一步在干什么,系统做了些什么,这需要时间去掌握,(背命令不是一件好的学习方法,相信我你一定会在你背完之前全部忘光),尽量掌握常用命令;
第二,在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
第三,如果你想在以后的生涯中在软体行业工作的话,学习linux是一项基本技能,所以打从你打算学习linux那天起,放弃windows吧!因为它除了能给你带来片刻的娱乐,别无其他;
第四,如果你只是想应付一下作业系统的课程,劝你最好别学,或者说不要指望能用的怎么样,原因我说了,这很耗时间,而且如果你学不好的话,你在linux中开发的机会就很少,或者说几乎没有,它的优势就消失了,然后随着时间的流逝,你就会全部忘记她。要深入学习,就到华清的星创客高阶班,专案实战丰富+职场老鸟带领。
要学好嵌入式linux需要做些什么:
第一,要多google,因为我不可能,也不可以给你解答所有内容,我只能告诉你一些关键点,甚至我会故意隐瞒答案,因为在寻找答案的过程中,你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪*求其解为耻;
第二,要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
第三,学习linux,就意味着更快的开发效率,等更多关于软体本身或者说作业系统本身的理解,(给你装的系统里为ubuntu12.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它),但是怎么用它提高开发效率,需要你在学习的过程中不断总结。
FPGA硬体Verilog本硬体描述语言虽看写程式码描述电路功能模组连线看硬体语言背对映硬体电路FPGA关键
习FPGA要定定力首先基本数电要写程式码要解模组功能要看数BUG我推荐买发板般发板配套教程配合发板写调FPGA才提高写关键性东西(跨钟域操作状态机亚稳态消除毛刺些理解功夫)
硬体软体同硬体候卡经验现找工作单位要求3-5应届种限制公司接受应届毕业机要握别沟通做写
我觉硬体软体区别硬体越越珍贵软体找合适机转管理层吧3040岁写软体思维能轻比跳跃
我推荐软硬结合板卡设计始画板写程式码(管微控制器ARM,FPGA都)除错我觉才算比较站久远点
意见我做硬体(板微控制器都做)