编辑推荐
1、《ARMCortex-M3嵌入式开发与实践——基于STM32F103》按照“认知—应用—提高”的思路,全面介绍STM32F103微控制器内部架构及其常用典型硬件电路。
2、针对片上外设,基于KeilMDK阐述寄存器和库函数两种类型工程程序设计方法。
3、基于嵌入式实时操作系统μC/OS-Ⅱ和库函数类型工程,探讨面向任务程序设计方法。
4、《ARM Cortex-M3嵌入式开发与实践 基于STM32F103/电子设计与嵌入式开发实践丛书》配套有教学课件(PPT)和源代码。
内容简介
《ARM Cortex-M3嵌入式开发与实践 基于STM32F103/电子设计与嵌入式开发实践丛书》基于ARMCortexM3内核微控制器STM32F103和嵌入式实时操作系统μC/OSⅡ,详细讲述嵌入式系统的硬件设计与软件开发技术,主要内容包括嵌入式系统概述、STM32F103微控制器、STM32F103学习平台、LED灯控制与KeilMDK工程框架、按键与中断处理、定时器、串口通信、存储器管理、LCD屏与温/湿度传感器、μC/OSⅡ系统与移植、μC/OSⅡ任务管理、信号量与互斥信号量、消息邮箱与消息队列等。《ARM Cortex-M3嵌入式开发与实践 基于STM32F103/电子设计与嵌入式开发实践丛书》的特色在于理论与应用紧密结合,实例丰富,对于基于STM32F1系列微控制器及嵌入式实时操作系统μC/OSⅡ的教学和工程应用,都具有一定的指导和参考价值。
《ARM Cortex-M3嵌入式开发与实践 基于STM32F103/电子设计与嵌入式开发实践丛书》可作为普通高等院校物联网、电子工程、通信工程、自动化、智能仪器、计算机工程和嵌入式控制等相关专业的高年级本科生教材,也可作为嵌入式系统爱好者和工程开发技术人员的参考用书。
目录
第1篇STM32F103硬件系统与KeilMDK工程
第1章嵌入式系统概述
1.1嵌入式系统范例
1.2嵌入式系统概念
1.2.1嵌入式系统与ARM的关系
1.2.2嵌入式系统与嵌入式操作系统的关系
1.2.3嵌入式系统研发特点
1.3ARM发展历程及应用领域
1.3.1ARM发展史及命名规则
1.3.2ARM微处理器系列
1.3.3ARM微处理器应用领域
1.4嵌入式操作系统
1.4.1WindowsCE
1.4.2VxWorks
1.4.3嵌入式Linux
1.4.4Android系统
1.5μC/OSⅡ与μC/OSⅢ
1.5.1μC/OS发展历程
1.5.2μC/OSⅡ特点
1.5.3μC/OSⅢ特点
1.5.4μC/OS应用领域
1.6本章小结
习题
第2章STM32F103微控制器
2.1STM32F103概述
2.2STM32F103ZET6引脚定义
2.3STM32F103架构
2.4STM32F103存储器
2.5STM32F103片内外设
2.6STM32F103异常与中断
2.7本章小结
习题
第3章STM32F103学习平台
ARMCortexM3嵌入式开发与实践——基于STM32F103
3.1STM32F103核心电路
3.2电源电路与按键电路
3.3LED与蜂鸣器驱动电路
3.4串口通信电路
3.5Flash与EEPROM电路
3.6温/湿度传感器电路
3.7LCD屏接口电路
3.8JTAG与复位电路
3.9SRAM电路
3.10本章小结
习题
第4章LED灯控制与KeilMDK工程框架
4.1STM32F103通用目的输入/输出口
4.1.1GPIO寄存器
4.1.2AFIO寄存器
4.2STM32F103库函数用法
4.3KeilMDK工程框架
4.4LED灯闪烁实例
4.4.1寄存器类型工程实例
4.4.2库函数类型工程实例
4.5本章小结
习题
第5章按键与中断处理
5.1NVIC中断工作原理
5.2GPIO外部输入中断
5.3用户按键中断实例
5.3.1寄存器类型工程实例
5.3.2库函数类型工程实例
5.4本章小结
习题
第6章定时器
6.1系统节拍定时器
6.1.1系统节拍定时器工作原理
6.1.2系统节拍定时器实例
6.2看门狗定时器
6.2.1窗口看门狗定时器工作原理
6.2.2窗口看门狗定时器寄存器类型实例
6.2.3窗口看门狗定时器库函数类型实例
6.3实时时钟
6.3.1实时时钟工作原理
6.3.2实时时钟寄存器类型实例
6.3.3实时时钟库函数类型实例
6.4通用定时器
6.4.1通用定时器工作原理
6.4.2通用定时器寄存器类型实例
6.4.3通用定时器库函数类型实例
6.5本章小结
习题
第7章串口通信
7.1串口通信工作原理
7.2STM32F103串口
7.3串口通信寄存器类型实例
7.4串口通信库函数类型实例
7.5本章小结
习题
第8章存储器管理
8.1SRAM存储器
8.1.1访问SRAM存储器寄存器类型实例
8.1.2访问SRAM存储器库函数类型实例
8.2EEPROM存储器
8.2.1访问EEPROM寄存器类型实例
8.2.2访问EEPROM库函数类型实例
8.3Flash存储器
8.3.1STM32F103同步串行口
8.3.2W25Q128访问控制
8.3.3访问Flash存储器寄存器类型工程实例
8.3.4访问Flash存储器库函数类型工程实例
8.4本章小结
习题
第9章LCD屏与温/湿度传感器
9.1LCD屏显示原理
9.2温/湿度传感器
9.3LCD显示实例
9.3.1寄存器类型实例
9.3.2库函数类型实例
9.4本章小结
习题
第2篇嵌入式实时操作系统μC/OSⅡ
第10章μC/OSⅡ系统与移植
10.1μC/OSⅡ系统移植
10.2μC/OSⅡ系统结构与配置
10.3μC/OSⅡ系统任务
10.3.1空闲任务
10.3.2统计任务
10.3.3定时器任务
10.4本章小结
习题
第11章μC/OSⅡ任务管理
11.1μC/OSⅡ用户任务
11.2μC/OSⅡ多任务工程实例
11.3统计任务实例
11.4系统定时器
11.5本章小结
习题
第12章信号量与互斥信号量
12.1μC/OSⅡ信号量
12.2μC/OSⅡ互斥信号量
12.3信号量与互斥信号量实例
12.4本章小结
习题
第13章消息邮箱与消息队列
13.1μC/OSⅡ消息邮箱
13.2μC/OSⅡ消息队列
13.3消息邮箱与消息队列实例
13.4本章小结
习题
参考文献
精彩书摘
第5章
按键与中断处理
本章将介绍嵌套向量中断控制器NVIC的工作原理,阐述STM32F103ZET6微控制器外部输入中断的工作原理,然后,以用户按键为例,详细解释NVIC中断的寄存器类型和库函数类型的程序设计方法。
本章的学习目标:
了解NVIC中断响应方法;
熟悉GPIO中断响应方法;
熟练应用寄存器或库函数进行GPIO中断程序设计。
5.1NVIC中断工作原理
嵌套向量中断控制器NVIC相关的中断管理工作主要有开放中断、关闭中断、设置中断请求标志、读中断请求标志、清除中断请求标志和配置中断优先级等。嵌套向量中断控制器NVIC的寄存器有ISER0、ISER1、ICER0、ICER1、ISPR0、ISPR1、ICPR0、ICPR1、IABR0、IABR1、IPR0~IPR14和STIR,如表51所示。
表51NVIC寄存器
序号
地址
寄存器
名称
描述
1
0xE000E100
ISER0
0xE000E104
ISER1中断开放寄存器
ISER0[0]~ISER0[31]、ISER1[0]~ISER1[27]依次对应中断号为0~59的中断,各位写0无效,写1开放中断2
0xE000E180
ICER0
0xE000E184
ICER1
中断关闭寄存器
ICER0[0]~ICER0[31]、ICER1[0]~ICER1[27]依次对应中断号为0~59的中断,各位写0无效,写1关闭中断3
0xE000E200
ISPR0
0xE000E204
ISPR1
中断设置请求状态寄存器
ISPR0[0]~ISPR0[31]、ISPR1[0]~ISPR1[27]依次对应中断号为0~59的中断,各位写0无效,写1请求中断
续表
序号
地址
寄存器
名称
描述
4
0xE000E280
ICPR0
0xE000E284
ICPR1
中断清除请求状态寄存器
ICPR0[0]~ICPR0[31]、ICPR1[0]~ICPR1[27]依次对应中断号为0~59的中断,各位写0无效,写1清中断标志
5
0xE000E300
IABR0
0xE000E304
IABR1
中断活跃位寄存器(只读)
IABR0[0]~IABR0[31]、IABR1[0]~IABR1[27]依次对应中断号为0~59的中断,各位读出1,相应中断活跃
6
0xE000E400~0xE000E438
IPR0~IPR14
中断优先级寄存器
共有16个优先级,优先级号为0~15,优先级号0表示优先级*高,优先级号15表示优先级*低
7
0xE000EF00
STIR
软件触发中断寄存器
第[8:0]位域有效,写入0~59中的某一中断号,则触发相应的中断
下面以ISER0和ISER1为例,介绍开放中断的方法。
根据表51,ISER0[0]~ISER0[31]对应着中断号为0~31的NVIC中断,而ISER1[0]~ISER1[27]则对应着中断号为32~59的NVIC中断。由表25可知,外部中断2的中断号为8,而USART2中断的中断号为38,开放这两个中断的语句依次为
ISER0=(1uL5)]=(1ICER[((uint32_t)(IRQn)>>5)]=(1ISPR[((uint32_t)(IRQn)>>5)]=(1