新書推薦:
《
斯大林格勒:为了正义的事业(格罗斯曼“战争二部曲”的第一部,《生活与命运》前传)
》
售價:HK$
184.8
《
日内交易与波段交易的资金风险管理
》
售價:HK$
85.8
《
自然信息图:一目了然的万物奇观
》
售價:HK$
140.8
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:HK$
96.8
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:HK$
123.2
《
你当我好骗吗?
》
售價:HK$
120.9
《
跨代伴侣治疗
》
售價:HK$
96.8
《
精华类化妆品配方与制备手册
》
售價:HK$
217.8
|
編輯推薦: |
(1) 体现“卓越工程师教育培养计划”的理念,注重培养学生解决复杂工程问题的能力,将嵌入式系统开发能力的培养常态化、课程化。
(2) 选用Coretex-M3内核的STM32F103VET6单片机,深入分析CMSIS固件库,详细讲解基于固件库的嵌入式系统开发。
(3) 专门讲解C语言在嵌入式系统开发中的独到之处,以及固件库C语言程序的特性。
(4) 内容组织由浅入深,基础篇、提高篇和实践篇可适应不同层次学习者的需求。
(5) “最小系统板 硬件模块”方式搭建硬件平台,设计灵活,可拓展性强。
(6) 从“实战”出发,按需学习。针对具体的功能需求,先学习单片机片上硬件模块的功能、相关寄存器和库函数,再完成设计实现功能。
(7) 针对各章内容,配有丰富的设计实例,分析程序架构,讲解调试方法。
(8) 提供完整的项目开发设计实例,分解功能需求,分析硬件设计,讲解软件设计,讲述完整的项目开发全过程。
(9) 配套大量教学视频,从工具的使用、硬件设计,到分析代码、调试问题,提供“身临其境”的沉浸式教学体验,可扫描书中二维码观看。
(10) 新形态教材,配套资源丰富,包括教学大纲、
|
內容簡介: |
《从零开始设计你的智能小车》从“实战”出发,以STM32F103VET6单片机为对象,以C语言为开发语言,详细讲解如何在CMSIS固件库基础上完成嵌入式应用系统的开发。通过本书的学习,读者能够初步了解嵌入式系统设计中的硬件设计和软件设计,掌握硬件和软件调试技巧,具备设计、规划和实现一个简单嵌入式应用系统的能力。 全书以“智能小车设计”作为主线,内容分为基础篇、提高篇和实践篇三个层次。“基础篇”介绍嵌入式开发的基本常识、系统架构等。“提高篇”以小车功能需求为目标来组织各章节内容,每一章实现智能小车的一个功能。“实践篇”从应用系统设计规划的角度出发,通过两个不同的“智能小车”系统设计实例,从功能设计规划开始,经过硬件需求分析与选型、硬件设计与供电设计,到软件设计、系统测试,详细讲解从设计规划到开发实现的完整过程。侧重分析设计思路、设计方法,以及项目的组织架构,培养作为系统开发工程师而应该具备的“全局观”和从系统层面分析、分解系统功能的能力。 本书可作为高等院校自动化、电气工程等相关专业的教材,也可作为嵌入式开发爱好者的入门书籍。
|
關於作者: |
胡青,工学博士,现为重庆大学自动化学院副教授。作为主研人员,参与重庆市精品课程“计算机硬件技术基础”系列课程的建设。参与多项市级、校级教改项目,获得重庆市高等教育教学成果三等奖一项。在《计算机教育》《实验室研究与探索》等期刊上发表教改文章10余篇。参编教材4部,其中《单片机原理及应用》为普通高等教育“十一五”国家级规划教材。在嵌入式开发方面积累了丰富的工程经验以及教学经验。
|
目錄:
|
第1章嵌入式系统概述
1.1单片机概述
1.1.1单片机的定义
1.1.2单片机与PC的对比
1.2嵌入式系统
1.3ARM是什么
1.3.1ARM公司简介
1.3.2ARM架构、ARM内核与ARM单片机
1.3.3ARM CortexM3内核概述
第2章STM32F103单片机概述
2.1单片机的手册
2.2STM32F103单片机体系结构概述
2.2.1ARM CortexM3内核
2.2.2STM32F103单片机系统架构
2.3什么是CMSIS
2.4STM32固件库
基础篇
第3章嵌入式程序设计中的C语言
3.1整型
3.1.1整型的位宽
3.1.2访问硬件模块的寄存器
3.2volatile关键字
3.2.1C语言编译器的优化功能
3.2.2用volatile关键字避免优化
3.3结构体数据类型
3.3.1struct关键字
3.3.2访问单片机片上外设寄存器
3.4枚举数据类型
3.5static关键字
3.5.1静态全局变量
3.5.2静态局部变量
3.5.3静态函数
3.6宏定义
3.7条件编译与头文件
3.7.1条件编译指令
3.7.2头文件
3.8变量在哪里
3.8.1堆、栈和静态区
3.8.2单片机中变量的存储空间分配
第4章第一个STM32 项目
4.1开发环境与所需硬件
4.1.1搭建开发环境
4.1.2所需硬件
4.1.3所需工具
4.2创建第一个项目
4.3下载与调试程序
4.3.1安装仿真器驱动
4.3.2在Keil软件中配置仿真器
4.3.3编译下载程序
4.3.4Debug调试程序
第5章深入了解项目模板
5.1启动文件的作用
5.1.1定义栈和堆
5.1.2定义中断向量表
5.1.3定义复位中断子程序
5.2单片机的时钟初始化
5.3stm32f10x.h头文件的作用
5.4项目中的文件管理
5.4.1CMSIS固件库文件
5.4.2项目中的系统文件
5.4.3项目中的用户文件
第6章按键与小灯的控制——GPIO模块
6.1GPIO的输入/输出模式
6.1.1小灯与GPIO输出模式
6.1.2按键与GPIO输入模式
6.2GPIO的编程操作
6.2.1GPIO寄存器
6.2.2GPIO库函数
6.2.3GPIO的按位操作——位带别名区
6.3应用实例——8段LED显示控制
6.3.1一位8段LED显示控制
6.3.2多位8段LED显示控制
6.4IO引脚的电气特性
6.4.1TTL电平
6.4.2CMOS电平
6.4.3IO引脚的电气特性
6.4.4IO引脚控制外设
6.5IO引脚的复用功能AFIO
6.5.1IO引脚的复用功能
6.5.2AFIO重映射功能的编程操作
6.5.3调试端口的重映射功能
第7章秒表的实现——基本定时器
7.1定时器原理概述
7.2基本定时器的工作原理
7.2.1基本定时器的结构
7.2.2基本定时器的时钟源
7.2.3基本定时器的计数模式
7.2.4定时时间的计算
7.2.5ARR寄存器的预装载功能
7.3基本定时器的编程操作
7.3.1TIM6、TIM7的相关寄存器
7.3.2基本定时器的相关库函数
7.4秒表的设计与实现
7.4.1秒表功能分析
7.4.2硬件选型
7.4.3硬件设计
7.4.4软件设计
第8章中断及中断管理器NVIC
8.1中断基本概念
8.1.1中断的定义
8.1.2中断向量表
8.1.3中断优先级与中断嵌套
8.2STM32单片机的中断管理
8.2.1中断源与中断向量表
8.2.2内核中开放/禁止中断
8.2.3中断控制器NVIC
8.3中断处理过程及相关接口库
8.3.1片上硬件中断处理过程
8.3.2中断处理库函数总结
8.4应用实例——中断方式实现秒表计时
8.4.1定时器的更新中断
8.4.2中断机制实现计时
第9章按键触发中断——EXTI模块
9.1外部中断/事件模块EXTI
9.1.1EXTI功能
9.1.2EXTI寄存器
9.1.3EXTI的相关库函数
9.1.4EXTI初始化步骤及中断响应过程
9.2设计实例——中断方式处理秒表按键
9.2.1分段计时功能
9.2.2硬件设计
9.2.3软件设计
提高篇
第10章让小车跑起来——PWM调速
10.1通用定时器的基本定时功能
10.1.1通用定时器概述
10.1.2通用定时器的时钟源
10.1.3通用定时器的计数模式
10.1.4通用定时器的从模式
10.1.5相关寄存器
10.1.6相关库函数
10.1.7设计实例——检测信号频率
10.2通用定时器的PWM输出模式
10.2.1PWM信号
10.2.2捕获比较通道
10.2.3PWM输出模式
10.2.4相关寄存器
10.2.5相关库函数
10.3电动机驱动芯片L298N
10.3.1直流电动机驱动模块L298N
10.3.2单片机控制L298N
10.4应用实例——小车设计
10.4.1小车的硬件设计
10.4.2小车的软件设计
实践篇
第11章避障小车——超声波测距
11.1超声波测距原理
11.1.1基本原理
11.1.2HCSRF05测距模块
11.1.3单片机控制超声波测距模块
11.2通用定时器的输入捕获功能
11.2.1输入捕获的基本原理
11.2.2相关寄存器
11.2.3相关库函数
11.2.4应用实例——捕获方式实现测距
11.3嘀嗒定时器实现定时测距
11.3.1嘀嗒定时器
11.3.2嘀嗒定时器的寄存器
11.3.3相关库函数
11.3.4嘀嗒定时器实现定时测距
第12章遥控小车——蓝牙遥控
12.1蓝牙技术
12.1.1发展历史
12.1.2基本特性
12.2HC05蓝牙模块
12.2.1功能概述
12.2.2工作原理
12.2.3AT命令
12.2.4PC串口配置蓝牙模块
12.3UART串口通信
12.3.1串口通信基本概念
12.3.2UART模块概述
12.3.3相关寄存器
12.3.4相关库函数
12.4应用实例
12.4.1单片机与PC之间的串口通信
12.4.2单片机与手机之间的蓝牙通信
第13章智能小车设计方案分析
13.1避障小车设计方案
13.1.1小车功能规划
13.1.2硬件选型
13.1.3硬件设计分析
13.1.4软件设计分析
13.2遥控小车设计方案
13.2.1小车功能规划
13.2.2硬件需求分析
13.2.3硬件设计分析
13.2.4软件设计分析
习题
参考文献
|
內容試閱:
|
2014年,教育学部推动“卓越工程师教育培养计划”,重庆大学自动化学院建立了“卓越计划”实验班。为了适应“卓越计划”加强培养学生工程素养的要求,2017年,我为实验班开设了全新的“嵌入式技术与应用”课程。课程注重实践,引导学生建立工程师的思维方式,培养设计、规划、开发嵌入式应用系统的能力。课程选择主流的32位ARM CortexM3内核STM32F103VET6单片机为对象,以C语言为开发语言,详细讲解如何在CMSIS固件库基础上完成嵌入式应用系统的开发。
通过几届的教学实践,课程取得了比较满意的效果,学生们认为课程培养了他们的动手能力,使他们初步掌握了嵌入式开发技术,很多同学将课程所学的知识应用在竞赛和SRTP、国创项目,取得了较好的成绩。以课程内容为基础,结合教学中发现的问题以及学生实践中的反馈,形成了本书的主体内容。
本书以“智能小车设计”作为主线,分为基础篇、提高篇和实践篇三个层次。“基础篇”介绍嵌入式系统的基本概念、单片机系统架构、CMSIS库基本结构等,重点讲解嵌入式系统开发的基础知识、常用的片上硬件模块,包括GPIO模块、基本定时器以及嵌套向量中断控制器NVIC等。“提高篇”以小车功能需求为主线,每章实现小车的一个功能。内容安排由浅入深,“按需学习”,即针对具体的功能需求,选择合适的扩展硬件模块。为了控制拓展的硬件模块而学习片上硬件的相关功能,了解与该功能相关的寄存器和接口函数,掌握基于库函数的嵌入式开发技术。每章都有设计实例,详细分析实例项目的硬件设计和软件设计。在开发实例的讲解上,突出单片机“参考手册”“数据手册”的作用。从项目开发的角度,分析项目文件的组织结构,接口函数的设计。“实践篇”从应用系统设计规划的角度出发,通过两个不同的“智能小车”设计,从功能设计规划开始,到硬件需求分析与选型、硬件设计与供电设计、软件设计与测试,详细讲解从设计规划到开发实现的完整过程。重点分析设计思路、设计方法,以及项目的组织架构,培养作为系统开发工程师应该具备的“全局观”和从系统层面分析、分解系统功能的能力。
本书面向对嵌入式系统开发有兴趣的读者,只要有C语言的编程经验即可,无需更多的软硬件开发经验。本书以“单片机最小系统板 相关硬件小模块”的方式搭建硬件平台,而不是直接购买一块昂贵的开发板,书中用到的所有硬件模块都很容易在网络平台上购买到,并且有很多可互相替换的硬件模块可供选择。新手做硬件设计难免会出错,在教学过程中,每一届都有学生因失误而烧毁硬件,最小系统板、8段LED、L298N等都损坏过,甚至小车都撞坏过,这很正常。学习游泳怎能不呛水,但是如果损坏的硬件价格昂贵,这就很“痛”了。集成了所有外扩硬件的开发板成本太高,一旦损坏就会给学习者带来高昂的成本损失,也会对其造成很大的心理压力,使其在学习和使用的过程中畏首畏尾。本书选择“最小系统板 硬件模块”的方式,每一个硬件模块的价格都不高,减轻学习者的经济压力和心理负担,使其更能勇于尝试。这种方式能锻炼学习者动手做硬件设计的能力,硬件设计对嵌入式系统设计来说是非常重要的部分。
本书的配套资料中给出了开发软件、单片机手册、芯片数据手册、硬件模块资料等,还有教学大纲、教学课件、讲解视频、参考例程等,尤其是每个参考例程都配有视频讲解,说明所需要的硬件如何连接,分析程序结构,演示实验现象。学习了相关章节内容后,按照视频讲解,逐步操作,就能复现实验现象。在“吃透”参考例程的基础上,边学习边实践,最终一定能够设计并实现自己的智能小车,这时就能真正体会到开发嵌入式系统的乐趣。
胡青
2022年2月
于重庆大学
教学大纲 教学课件
参考例程
开发软件 单片机手册
硬件模块资料
|
|