您好,欢迎光临有路网!
ARM Cortex-M3嵌入式原理及应用——基于STM32F103微控制器
QQ咨询:
有路璐璐:

ARM Cortex-M3嵌入式原理及应用——基于STM32F103微控制器

  • 作者:黄克亚
  • 出版社:清华大学出版社
  • ISBN:9787302538615
  • 出版日期:2020年01月01日
  • 页数:352
  • 定价:¥69.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书旨在传承51经典,发扬ARM长处,助推MCU升级; 以学生认知过程为导向组织教材内容,采取项目**,全案例讲解的方式,着重培养学生实践应用能力。本书详细阐述了基于ARM CortexM3内核的STM32F103微控制器嵌入式系统硬件设计方法和软件开发技术。 全书共有15章,划分为3部分: 第1部分(第1~3章)为系统平台模块,讲述嵌入式系统定义、开发板硬件平台和工程模板创建; 第2部分(第4~9章)为基本外设模块,分别对STM32嵌入式系统*常用外设模块进行介绍,包括GPIO、中断、定时器、PWM和嵌入式系统接口技术; 第3部分(第10~15章)为扩展外设模块,分别对STM32嵌入式系统**外设模块进行介绍,包括USART、SPI、OLED、ADC、IIC、EEPROM和RTC等。 本书适合作为高等院校计算机、自动化、电子信息、机电一体化、物联网等专业高年级本科生或研究生嵌入式相关课程的教材,同时可供从事嵌入式开发的技术和研究人员参考。
    文章节选
    第3章 MDK软件与工程模板创建
    本章要点
    STM32固件库概述
    STM32固件库下载
    STM32固件库目录结构
    Keil MDK软件操作方法
    Keil MDK工程模板的创建
    Keil MDK软件模拟仿真调试 “工欲善其事,必先利其器”,无论是基于寄存器方式还是基于库函数方式开发STM32应用程序,首先必须选择一个熟悉、完善的开发平台,建立方便、合理的程序工程模板。对于51单片机***来说,KeilC是再熟悉不过的。而Keil公司针对32位ARM嵌入式系统推出的Keil MDK开发平台功能强大,基本操作又和KeilC保持兼容,是32位嵌入式单片机开发的**。建立工程模板的核心内容包含两个方面: 一是必须包含的文件; 二是这些文件对应的路径。
    工程模板创建 3.1STM32固件库认知
    建立工程模板需要从指定路径找到必要文件,要想很好地完成这一任务,我们需要首先认识STM32固件库。
    3.1.1STM32固件库概述
    意法半导体公司提供的STM32F10x标准外设库是基于STM32F1系列微控制器的固件库进行STM32F103开发的一把利器。可以像在标准C语言编程中调用printf()一样,在STM32F10x的开发中调用标准外设库的库函数,进行应用开发。相比传统的直接读写寄存器方式,STM32F10x标准外设库不仅明显降低了开发门槛和难度,缩短了开发周期,进而降低开发成本,而且提高了程序的可读性和可维护性,给STM32F103开发带来了极大的便利。毫无疑问,STM32F10x标准外设库是用户学习和开发STM32F103微控制器的**选择。
    STM32固件库是根据CMSIS标准(Cortex Microcontroller Software Interface Standard,ARM Cortex微控制器软件接口标准)而设计的。CMSIS标准由ARM和芯片生产商共同提出,让不同的芯片公司生产的Cortex M3微控制器能在软件上基本兼容。
    STM32F10x的固件库是一个或一个以上的完整的软件包(称为固件包),包括所有的标准外设的设备驱动程序,其本质是一个固件函数包(库),它由程序、数据结构和各种宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为***访问底层硬件提供了一个中间API(APPlication Programming Interface,应用编程接口)。通过使用固件函数库,无须深入掌握底层硬件细节,***就可以轻松应用每一个外设。每个外设驱动都由一组函数组成,这组函数覆盖了该外设的所有功能。每个器件的开发都由一个通用API驱动,API对该驱动程序的结构、函数和参数名称都进行了标准化。 3.1.2STM32固件库下载
    意法半导体公司2007年10月发布了V1.0版本的固件库,2008年6月发布了V2.0版的固件库。V3.0以后的版本相对之前的版本改动较大,本书使用目前*为通用的V3.5版本,该版本固件库支持所有的STM32F10x系列。具体下载方法如下:
    **步: 输入www.st.com网址,打开意法半导体官方网站,在首页搜索栏输入stm32f10x,其操作界面如图31所示。
    图31搜索资料操作界面
    在图31中,单击右侧搜索图标开始搜索,结果如图32所示,其中STM32F10x standard peripheral library记录即为STM32F1的标准外设库。 图32搜索结果页面
    打开链接即可进入固件库下载页面,操作结果如图33所示,同时也可以看到,该固件库版本为3.5.0,该版本*为成熟和通用。 图33固件库下载页面
    单击图33右边的Get Software按钮,登录并确认著作权之后,即可将该固件库下载到的本机。
    需要说明的是: 意法半导体官网资料需要登录才可以下载,如果没有账号还需要注册,当然读者也可以直接在清华大学出版社网站下载本书的教学素材,里面包含STM32内核固件库。
    目录
    第1章ARM CortexM3嵌入式系统

    1.1嵌入式系统概述

    1.1.1什么是嵌入式系统

    1.1.2嵌入式系统和通用计算机系统比较

    1.1.3嵌入式系统的特点

    1.1.4嵌入式系统的应用领域

    1.1.5嵌入式系统范例

    1.2ARM CortexM3处理器

    1.2.1ARM公司

    1.2.2ARM处理器

    1.3STM32微控制器

    1.3.1从CortexM3内核到基于CortexM3的MCU

    1.3.2STM32微控制器产品线

    1.3.3STM32微控制器命名规则

    1.4嵌入式系统的软件

    1.4.1无操作系统的嵌入式软件

    1.4.2带操作系统的嵌入式软件

    1.4.3典型嵌入式操作系统

    1.4.4软件架构选择建议

    本章小结

    思考与扩展

    第2章STM32开发板硬件系统

    2.1开发板总体概况

    2.1.1开发板设计背景

    2.1.2开发板总体介绍

    2.2电源模块

    2.2.1电源模块原理图

    2.2.2电源模块工作原理

    2.3核心板电路

    2.3.1CPU模块

    2.3.2串口通信模块

    2.3.3外接晶振模块

    2.3.4备用电源模块

    2.3.**DC模块电源

    2.3.6CPU滤波电路

    2.3.7复位电路

    2.3.8启动设置电路

    2.4I/O模块电路

    2.4.1LED指示灯模块

    2.4.2按键模块

    2.4.3数码管模块

    2.4.4蜂鸣器模块

    2.4.5OLED显示屏电路

    2.5扩展模块电路

    2.5.1温度传感器

    2.5.2红外传感器

    2.5.3AD采样模块

    2.5.4EEPROM存储器

    2.5.5I/O引脚外接模块

    本章小结

    思考与扩展

    第3章MDK软件与工程模板创建

    3.1STM32固件库认知

    3.1.1STM32固件库概述

    3.1.2STM32固件库下载

    3.1.3STM32固件库目录结构

    3.2工程模板创建

    3.2.1Keil MDKARM软件简介

    3.2.2工程模板的创建

    3.3软件模拟仿真

    本章小结

    思考与扩展

    第4章通用目的输入输出口

    4.1GPIO概述及引脚命名

    4.2GPIO内部结构

    4.2.1输入驱动器

    4.2.2输出驱动器

    4.3GPIO工作模式

    4.3.1输入浮空

    4.3.2输入上拉

    4.3.3输入下拉

    4.3.4模拟输入

    4.3.5开漏输出

    4.3.6开漏复用输出

    4.3.7推挽式输出

    4.3.8推挽式复用输出

    4.3.9工作模式选择

    4.4GPIO输出速度

    4.5复用功能重映射

    4.6GPIO控制寄存器

    4.7GPIO寄存器配置实例

    4.8寄存器版LED灯闪烁工程

    4.8.1创建寄存器版工程模板

    4.8.2LED灯闪烁程序设计

    4.8.3基于寄存器开发方式特点

    本章小结

    思考与扩展

    第5章LED流水灯与SysTick定时器

    5.1库函数开发方法

    5.2GPIO输出库函数

    5.2.1函数RCC_APB2PeriphClockCmd

    5.2.2函数GPIO_Init

    5.2.3函数GPIO_Write

    5.2.4函数GPIO_SetBits

    5.2.5函数GPIO_ResetBits

    5.2.6函数GPIO_WriteBit

    5.3LED流水灯控制

    5.4SysTick定时器

    5.4.1SysTick定时器概述

    5.4.2SysTick定时器寄存器

    5.4.3SysTick定时器应用

    本章小结

    思考与扩展

    第6章按键输入与蜂鸣器

    6.1GPIO输入库函数

    6.1.1函数GPIO_ReadInputDataBit

    6.1.2函数GPIO_ReadInputData

    6.1.3函数GPIO_ReadOutputDataBit

    6.1.4函数GPIO_ReadOutputData

    6.2项目分析

    6.3项目实施

    本章小结

    思考与扩展

    第7章数码管动态显示

    7.1数码管显示接口

    7.1.1数码管工作原理

    7.1.2数码管编码方式

    7.1.3数码管显示方式

    7.2项目分析

    7.3项目实施

    7.4项目拓展

    本章小结

    思考与扩展

    第8章中断系统与基本应用

    8.1中断的基本概念

    8.1.1中断的定义

    8.1.2中断的应用

    8.1.3中断源与中断屏蔽

    8.1.4中断处理过程

    8.1.5中断优先级与中断嵌套

    8.2STM32F103中断系统

    8.2.1嵌套向量中断控制器NVIC

    8.2.2STM32F103中断优先级

    8.2.3STM32F103中断向量表

    8.2.4STM32F103中断服务函数

    8.3STM32F103外部中断/事件控制器EXTI

    8.3.1EXTI内部结构

    8.3.2EXTI工作原理

    8.3.3EXTI主要特性

    8.4STM32中断相关库函数

    8.4.1STM32F10x的NVIC相关库函数

    8.4.2STM32F10x的EXTI相关库函数

    8.4.3EXTI中断线GPIO引脚映射库函数

    8.5EXTI项目实例

    8.5.1项目分析

    8.5.2项目实施

    本章小结

    思考与扩展

    第9章定时器与脉冲宽度调制

    9.1STM32F103定时器概述

    9.2基本定时器

    9.2.1基本定时器简介

    9.2.2基本定时器的主要特性

    9.2.3基本定时器的功能

    9.2.4基本定时器寄存器

    9.3通用定时器

    9.3.1通用定时器简介

    9.3.2通用定时器主要功能

    9.3.3通用定时器功能描述

    9.3.4通用定时器工作模式

    9.3.5通用定时器寄存器

    9.4**定时器

    9.4.1**定时器简介

    9.4.2**定时器特性

    9.4.3**定时器结构

    9.5定时器相关库函数

    9.5.1函数TIM_DeInit

    9.5.2函数TIM_TimeBaseInit

    9.5.3函数TIM_OC1Init

    9.5.4函数TIM_OC2Init

    9.5.5函数TIM_OC3Init

    9.5.6函数TIM_OC4Init

    9.5.7函数TIM_Cmd

    9.5.8函数TIM _ITConfig

    9.5.9函数TIM_OC1PreloadConfig

    9.5.10函数TIM_OC2PreloadConfig

    9.5.11函数TIM_OC3PreloadConfig

    9.5.12函数TIM_OC4PreloadConfig

    9.5.13函数TIM_GetFlagStatus

    9.5.14函数TIM_ClearFlag

    9.5.15函数TIM_GetITStatus

    9.5.16函数TIM_ClearITPendingBit

    9.5.17函数TIM_SetCompare1

    9.5.18函数TIM_SetCompare2

    9.5.19函数TIM_SetCompare3

    9.5.20函数TIM_SetCompare4

    9.6项目实例

    9.6.1定时器项目

    9.6.2PWM项目

    本章小结

    思考与扩展

    第10章串行通信接口USART

    10.1数据通信基本概念

    10.1.1并行通信与串行通信

    10.1.2异步通信与同步通信

    10.1.3串行通信的制式

    10.1.4串行通信的校验

    10.1.5串行通信的波特率

    10.2SM32F103的USART工作原理

    10.2.1USART介绍

    10.2.2USART主要特性

    10.2.3USART功能概述

    10.2.4USART通信时序

    10.2.5USART中断

    10.2.6USART相关寄存器

    10.3USART相关库函数

    10.3.1函数USART_DeInit

    10.3.2函数USART_Init

    10.3.3函数USART_Cmd

    10.3.4函数USART_SendData

    10.3.5函数USART_ReceiveData

    10.3.6函数USART_GetFlagStatus

    10.3.7函数USART_ClearFlag

    10.3.8函数USART_ITConfig

    10.3.9函数USART_GetITStatus

    10.3.10函数USART_ClearITPendingBit

    10.3.11函数USART_DMACmd

    10.4项目实例

    10.4.1项目分析

    10.4.2项目实施

    本章小结

    思考与扩展

    第11章SPI与OLED显示屏

    11.1SPI通信原理

    11.1.1SPI介绍

    11.1.2SPI互连

    11.2STM32F103的SPI工作原理

    11.2.1SPI主要特征

    11.2.2SPI内部结构

    11.2.3时钟信号的相位和极性

    11.2.4数据帧格式

    11.2.5配置SPI为主模式

    11.2.6配置SPI为从模式

    11.3OLED显示屏

    11.3.1OLED简介

    11.3.2开发板OLED显示屏

    11.3.3OLED显示屏接口

    11.4SPI库函数

    11.4.1函数SPI_I2S_DeInit

    11.4.2函数SPI_Init

    11.4.3函数SPI_Cmd

    11.4.4函数SPI_I2S_SendData

    11.4.5函数SPI_I2S_ReceiveData

    11.4.6函数SPI_I2S_ITConfig

    11.4.7函数SPI_I2S_GetITStatus

    11.4.8函数SPI_I2S_ClearFlag

    11.5项目实例

    11.5.1项目分析

    11.5.2项目实施

    本章小结

    思考与扩展

    第12章模拟数字转换器

    12.1ADC概述

    12.1.1ADC基本原理

    12.1.2ADC性能参数

    12.1.3ADC主要类型

    12.2STM32F103的ADC工作原理

    12.2.1主要特征

    12.2.2内部结构

    12.2.3通道及分组

    12.2.4时序图

    12.2.5数据对齐

    12.2.6校准

    12.2.7转换时间

    12.2.8转换模式

    12.2.9外部触发转换

    12.2.10中断和DMA请求

    12.3ADC相关库函数

    12.3.1函数ADC_DeInit

    12.3.2函数ADC_Init

    12.3.3函数ADC_RegularChannelConfig

    12.3.4函数ADC_InjectedChannleConfig

    12.3.5函数ADC_Cmd

    12.3.6函数ADC_ResetCalibration

    12.3.7函数ADC_GetResetCalibrationStatus

    12.3.8函数ADC_StartCalibration

    12.3.9函数ADC_GetCalibrationStatus

    12.3.10函数ADC_SoftwareStartConvCmd

    12.3.11函数ADC_GetConversionValue

    12.3.12函数ADC_GetFlagStatus

    12.3.13函数ADC_DMACmd

    12.4项目实例

    12.4.1项目分析

    12.4.2项目实施

    本章小结

    思考与扩展

    第13章直接存储器访问

    13.1DMA的基本概念

    13.1.1DMA由来

    13.1.2DMA定义

    13.1.3DMA传输过程

    13.1.4DMA优点

    13.2STM32F103的DMA工作原理

    13.2.1STM32F103的DMA主要特性

    13.2.2STM32F103的DMA内部结构

    13.2.3STM32F103的DMA通道

    13.2.4STM32F103的DMA优先级

    13.2.5STM32F103的DMA传输模式

    13.2.6STM32F103的DMA中断

    13.3DMA相关库函数

    13.3.1函数DMA_DeInit

    13.3.2函数DMA_Init

    13.3.3函数DMA_GetCurrDataCounte

    13.3.4函数DMA_Cmd

    13.3.5函数DMA_GetFlagStatus

    13.3.6函数DMA_ClearFlag

    13.3.7函数DMA_ITConfig

    13.3.8函数DMA_GetITStatus

    13.4项目实例

    13.4.1项目分析

    13.4.2项目实施

    本章小结

    思考与扩展

    第14章I2C接口与EEPROM存储器

    14.1I2C通信原理

    14.1.1I2C串行总线概述

    14.1.2I2C总线的数据传送

    14.2STM32F103的I2C接口

    14.2.1STM32F103的I2C主要特性

    14.2.2STM32F103的I2C内部结构

    14.2.3STM32F103的模式选择

    14.3STM32F103的I2C相关库函数

    14.3.1函数I2C_DeInit

    14.3.2函数I2C_ Init

    14.3.3函数I2C_ Cmd

    14.3.4函数I2C_ GenerateSTART

    14.3.5函数I2C_ GenerateSTOP

    14.3.6函数I2C_ Send7bitAddress

    14.3.7函数I2C_ SendData

    14.3.8函数I2C_ ReceiveData

    14.4项目实例

    14.4.1模拟I2C时序要求

    14.4.2模拟I2C函数

    14.4.3EEPROM芯片24C02

    14.4.4模拟I2C访问24C02项目分析

    14.4.5模拟I2C访问24C02项目实施

    本章小结

    思考与扩展

    第15章RTC时钟与BKP寄存器

    15.1RTC时钟

    15.1.1RTC简介

    15.1.2RTC主要特性

    15.1.3RTC内部结构

    15.1.4RTC复位过程

    15.2备份寄存器(BKP)

    15.2.1BKP简介

    15.2.2BKP特性

    15.2.3BKP侵入检测

    15.3RTC时钟的操作

    15.3.1RTC的初始化

    15.3.2RTC时间写入初始化

    15.4RTC与BKP相关库函数

    15.4.1函数PWR_BackupAccessCmd

    15.4.2函数BKP_DeInit()

    15.4.3函数RCC_LSEConfig

    15.4.4函数RCC_GetFlagStatus

    15.4.5函数RCC_RTCCLKConfig

    15.4.6函数RCC_RTCCLKCmd

    15.4.7函数RTC_WaitForSynchro

    15.4.8函数RTC_WaitForLastTask

    15.4.9函数RTC_ITConfig

    15.4.10函数RTC_SetPrescaler

    15.4.11函数RTC_SetCounter

    15.4.12函数RTC_GetCounter()

    15.4.13函数BKP_ReadBackupRegister

    15.4.14函数BKP_WriteBackupRegister

    15.4.15函数RCC_ClearFlag

    15.5项目实例

    15.5.1项目分析

    15.5.2项目实施

    15.5.3项目调试

    本章小结

    思考与扩展

    附录AASCII码表

    附录BSTM32F103微控器小容量产品系列引脚定义表

    附录CSTM32F103微控器中等容量产品系列引脚定义表

    附录DSTM32F103微控器大容量产品系列引脚定义表

    参考文献

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外