登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書

『簡體書』嵌入式Linux基础与实训教程

書城自編碼: 2649739
分類:簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: 龙华、谢剑明
國際書號(ISBN): 9787302413141
出版社: 清华大学出版社
出版日期: 2015-09-01
版次: 1 印次: 1
頁數/字數: 268/409000
書度/開本: 16开 釘裝: 平装

售價:HK$ 59.2

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
课长,这不是恋爱,这就是性骚扰!
《 课长,这不是恋爱,这就是性骚扰! 》

售價:HK$ 45.9
人文与社会译丛:我们中的我(承认理论研究)
《 人文与社会译丛:我们中的我(承认理论研究) 》

售價:HK$ 79.4
(守望者·人间世)自我:与齐格蒙特·鲍曼对谈
《 (守望者·人间世)自我:与齐格蒙特·鲍曼对谈 》

售價:HK$ 82.8
白蛇:浮生艺术画集
《 白蛇:浮生艺术画集 》

售價:HK$ 193.2
马拉松名将手记2:每个人都有自己的决战
《 马拉松名将手记2:每个人都有自己的决战 》

售價:HK$ 79.4
大家小书 译馆 骑士:历史与文化
《 大家小书 译馆 骑士:历史与文化 》

售價:HK$ 56.4
没有一种人生是完美的:百岁老人季羡林的人生智慧(读完季羡林,我再也不内耗了)
《 没有一种人生是完美的:百岁老人季羡林的人生智慧(读完季羡林,我再也不内耗了) 》

售價:HK$ 56.9
日耳曼通识译丛:复原力:心理抗逆力
《 日耳曼通识译丛:复原力:心理抗逆力 》

售價:HK$ 34.3

 

建議一齊購買:

+

HK$ 46.3
《婚礼色彩设计与应用》
+

HK$ 135.2
《宠物美容与服饰》
+

HK$ 78.0
《服装设计基础---中国高等职业院校服装专业实用教程(进阶版)》
+

HK$ 127.4
《工业机器人工程应用虚拟仿真教程(高等职业教育工业机器人课程实》
+

HK$ 115.1
《漆艺教程》
內容簡介:
本书以完成一个智能家居项目为主线,讲述了实训各个阶段所需要的知识。全书分为三篇,第一篇讲述了项目的界面部分,用Qt程序设计,并以一个小项目媒体播放器的制作来加深理解。第二篇讲述了项目的驱动程序部分,即基于ARM学习板及扩展电路板的驱动程序的编写。第三篇讲述了系统的集成,即嵌入式Qt界面控制硬件,完成一个简易的智能家居项目。

本书适合作为大专院校嵌入式专业、物联网专业学生的实训教材。此外,有志从事嵌入式Linux开发的人员可以把本书作为入门级读物。
目錄
目 录
第一篇 Qt程序设计
第1章 Qt编程基础及开发环境的搭建1
1.1 Qt的起源1
1.2 Linux系统下的图形界面3
1.2.1 Linux本身包括内核和Shell3
1.2.2 关于X114
1.2.3 窗口管理器综合桌面环境5
1.3 Qt的特点及主要构成5
1.3.1 Qt的特点5
1.3.2 Qt开发环境的主要构成7
1.4 Qt开发环境的搭建8
1.4.1 安装Qt Creator8
1.4.2 安装虚拟机11
1.4.3 在虚拟机中安装Linux
操作系统15
1.5 使用Qt开发环境创建第一个
应用程序28
1.5.1 关于可视化编程28
1.5.2 Qt Creator常用菜单的
功能介绍28
1.5.3 举例29
第2章 Qt编程基础36
2.1 C++基础36
2.2 Qt程序编译过程分析43
2.2.1 Qt Creator中应用程序的
编译过程43
2.2.2 Qt的元对象系统48
2.2.3 Qt资源文件49
2.3 Qt控件编程52
2.3.1 Qt的帮助系统53
2.3.2 Qt Creator界面中的控件54
2.3.3 常用控件举例57
2.4 Qt布局管理60
2.5 信号与槽61
2.6 媒体播放器的制作62
2.6.1 制作界面62
2.6.2 编写控件的事件代码64
第3章 智能家居项目Qt界面设计75
3.1 界面跳转75
3.2 智能家居多级子项目界面设计81
3.2.1 智能家居项目需求分析81
3.2.2 代码实现82
第二篇 驱动程序开发
第4章 搭建开发环境93
4.1 软件开发环境的搭建93
4.1.1 安装VMware Workstation
软件93
4.1.2 建立虚拟电脑94
4.1.3 Ubuntu 12.04的安装102
4.1.4 Ubuntu 12.04系统的配置106
4.1.5 安装使用Source Insight113
4.1.6 交叉环境的搭建127
4.2 硬件环境介绍129
4.2.1 S3C2440芯片介绍129
4.2.2 S3C2440开发板主要硬件的
说明133
第5章 驱动程序开发的内核基础144
5.1 嵌入式Linux操作系统的移植
过程概述144
5.1.1 Linux操作系统及其特点144
5.1.2 嵌入式Linux操作系统的
特点144
5.1.3 嵌入式Linux系统的
移植步骤145
5.2 基于GEC2440开发板的内核移植146
5.2.1 Linux-2.6.30内核移植146
5.2.2 驱动模块的动态编译与
静态编译153
5.3 常见的嵌入式内核驱动编译与
移植161
5.3.1 LCD驱动移植161
5.3.2 触摸屏驱动移植166
5.3.3 USB驱动移植170
5.3.4 网卡驱动移植174
第6章 智能家居项目驱动程序实验177
6.1 房间灯驱动程序177
6.1.1 实验目的177
6.1.2 实验原理178
6.1.3 实验步骤178
6.2 窗帘模块驱动程序186
6.2.1 光敏电阻驱动程序186
6.2.2 步进电机的驱动程序194
6.3 温湿度控制模块驱动程序203
6.3.1 温湿度传感器DHT11
驱动程序203
6.3.2 直流电机驱动程序211
6.4 烟雾及红外检测模块驱动程序215
6.4.1 烟雾传感器MQ-2驱动
程序215
6.4.2 红外模块驱动程序222
6.4.3 蜂鸣器驱动程序228
第三篇 系统集成
第7章 Qt图形下载到学习板239
7.1 带QtE4的文件系统分析239
7.2 对QtE应用程序的编译240
第8章 智能家居项目集成241
8.1 把测试程序加入到Qt程序中241
8.1.1 灯光控制界面241
8.1.2 窗帘控制界面244
8.1.3 温湿度控制界面248
8.1.4 烟雾及红外检测界面253
8.2 驱动程序的统一加载257
附录 制作根文件系统258
参考文献263
內容試閱
第2章 Qt编程基础
主要内容
C++基础
Qt程序编译过程分析
Qt的常用控件
Qt布局管理
信号与槽机制
媒体播放器的制作
Qt是一个完全的C++程序开发框架,包含数百个使用C++编写的类组成
的类库和跨平台国际化开发工具。基于控件的编程使得Qt编写界面比
MFCWindows下的基于C++应用程序框架更加方便。Qt API和开发工具
对所有支持平台都是一致的,从而可以进行独立于平台的程序开发和
配置,使得跨平台软件编程直观、简易和方便。
2.1 C++基础
Qt是在标准C++上的扩展,读者如果有标准C++的基础,则再学Qt将更
容易一些。
例2.1 建立一个Point类a.cpp,包含数据成员x、y,编写main进行
测试。
1使用g++进行编译。
2把这个Point类拆分为aa.h、aa.cpp、main.cpp,编写
makefile进行编译。
解:
编写的代码如下:
#include iostream
using namespace std;
class Point
{
public:
Pointfloat a=0, float b=0;
float getX;
float getY;
protected:
float x, y;
};
Point::Pointfloat a, float b {
x = a;
y = b;
}
float Point::getX {
return x;
}
float Point::getY {
return y;
}
int main {
Point point3.2, 4.5;
cout"point: "point.getX","point.getY""endl;
}
使用g++进行编译:g++ -o mm a.cpp,执行.mm,可以看到结果
point: 3.2,4.5。
我们把a.cpp拆分为3个文件aa.h、aa.cpp、main.cpp,分别如下。
aa.h:
#include iostream
class Point
{
public:
Pointfloat a=0, float b=0;
float getX;
float getY;
protected:
float x, y;
};
aa.cpp:
#include "aa.h"
Point::Pointfloat a, float b
{
x = a;
y = b;
}
float Point::getX
{
return x;
}
float Point::getY
{
return y;
}
main.cpp:
#include "aa.h"
using namespace std;
int main
{

Point point3.2,4.5;
cout"point: "point.getX","point.getY""endl;
}
再编写一个makefile,如下所示,执行make,也可以输出point: 3.2
,4.5。
aa.o:aa.cpp aa.h
g++ -c aa.cpp -o aa.o
main.o:main.cpp
g++ -c main.cpp -o main.o
mm:aa.o main.o
g++ -o mm aa.o main.o
例2.2 新建Circle类,继承自例2.1中的Point,进行如下操作。
1Circle类具有成员变量radius,能够计算面积,使用g++编译

2把Circle类拆分成3个文件,即circle.h、circle.cpp、
main.cpp,编写一个makefile,进行编译,达到同样的功能。
解:
1在Linux虚拟机中,使用gedit或vim编辑如下代码,命名为
mm.cpp。
#include iostream
using namespace std;
class Point
{
public:
Pointfloat a=0, float b=0;
float getX;
float getY;
protected:
float x, y;
};
Point::Pointfloat a, float b
{
x = a;
y = b;
}
float Point::getX
{
return x;
}
float Point::getY
{
return y;
}
class Circle : public Point
{
public:
explicit Circlefloat x=0, float y=0, float r=0;
void setRadiusfloat r;
float getRadius;
float area;
protected:
float radius;
};
Circle::Circlefloat a, float b, float r: Pointa,b,
radiusr
{
}
void Circle::setRadiusfloat r
{
radius = r;
}
float Circle::getRadius
{
return radius;
}
float Circle::area
{
return 3.14159*radius*radius;
}
int main
{
Point point3.2,4.5;
cout"point: "point.getX","point.getY""endl;
Circle *circle = new Circle2.4, 1.2, 5.6;
cout"Circle的面积area is: "circle-areaendl;
}
使用g++ -o mm mm.cpp,可以得到可执行性文件mm,执行.mm可以得
到结果:
g++ -o mm mm.cpp
.mm
point:3.2,4.5
Circle 的面积area is: 98.5203
这里,我们重点解释一下语句Circle::Circlefloat a, float b,
float r: Pointa,b, radiusr,这一行是Circle类的构造函数继
承了父类的构造函数,使用标识符“:”,有点像Java编程中的super
关键字,在执行子类的构造函数之前,必须先执行父类的构造函数。
在这一条语句中,子类构造函数参数a、b、r 分别传给了Pointa, b
和radiusr,对前者就是以a、b为参数,调用Point类的构造函数,
对后者就是把r的值赋给Circle类的成员变量radius。
2在例2.1中,已经将a.cpp拆分为aa.h、aa.cpp了,在本例中
,我们再把Circle类分割成circle.h、circle.cpp,分别如下:
#include "aa.h"
class Circle:public Point
{
public:
explicit Circlefloat x=0, float y=0, float r=0;
void setRadiusfloat r;
float getRadius;
float area;
protected:
float radius;
};
#include "circle.h"
Circle::Circlefloat a, float b, float r: Pointa,b,
radiusr
{
Pointa, b;
radius = r;
}
void Circle::setRadiusfloat r
{
radius = r;
}
float Circle::getRadius
{
return radius;
}
float Circle::area
{
return 3.14159*radius*radius;
}
再生成一个main.cpp,如下所示:
#include "circle.h"
#include "aa.h"
using namespace std;
int main
{
Point point3.2,4.5;
cout"point: "point.getX","point.getY""endl;
Circle *circle = new Circle2.4, 1.2, 5.6;
cout"Circle的面积area is: "circle-areaendl;
}
编写一个makefile,如下:
circle:aa.o circle.o main.o
g++ circle.o main.o aa.o -o circle
aa.o:aa.cpp aa.h
g++ -c aa.cpp -o aa.o
circle.o:circle.cpp circle.h
g++ -c circle.cpp -o circle.o
main.o:main.cpp circle.h
g++ -c main.cpp -o main.o
执行make,再执行.circle,可得上面一样的结果。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.