网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 嵌入式系统设计权威指南:基于STM32G071和Arm Cortex-M0+的系
分类 科学技术-工业科技-电子通讯
作者 何宾
出版社 电子工业出版社
下载
简介
内容推荐
本书以意法半导体公司新推出的基于Arm Cortex-M0+的STM32G071 MCU为硬件平台,以意法半导体公司的STM32CubeMX和Arm公司的Keil μVision(Arm版本)集成开发环境(以下简称Keil)为软件平台,以Cortex-M0+处理器结构、高级微控制总线结构、Cortex-M0+处理器指令集和应用、C语言应用开发、外设驱动与控制,以及RT-Thread操作系统为主线,由浅入深、由易到难地系统介绍了基于STM32G071 MCU的32位嵌入式系统开发流程和实现方法。 本书侧重于对基于Arm Cortex-M0+ MCU的32位嵌入式系统设计应用的讲解,通过典型设计实例说明将嵌入式系统设计应用于不同的应用场景的方法,使得所设计的嵌入式系统在满足应用场景要求的条件下实现成本、功耗和性能的很好平衡。
目录
目 录
第1章 软件工具的下载、安装和应用\t1
1.1 STM32CubeMX工具的下载和安装\t1
1.1.1 STM32CubeMX工具的下载\t1
1.1.2 STM32CubeMX工具的安装\t3
1.1.3 STM32G0系列MCU支持包的安装\t4
1.2 Keil ?Vision(Arm版本)工具的下载、安装和授权\t5
1.2.1 Keil ?Vision内嵌编译工具链架构\t6
1.2.2 Keil ?Vision(Arm版本)工具的下载和安装\t6
1.2.3 Keil ?Vision(Arm版本)工具的授权\t9
1.3 设计\t11
实例:LED的驱动和控制\t11
1.3.1 生成简单的工程\t11
1.3.2 添加设计代码\t14
1.3.3 编译和下载设计\t16
第2章 Cortex-M0+处理器结构\t18
2.1 Cortex-M0+处理器和核心外设\t18
2.1.1 Cortex-M0+处理器核\t19
2.1.2 系统级接口\t21
2.1.3 可配置的调试\t21
2.1.4 核心外设\t22
2.2 Cortex-M0+处理器的寄存器\t22
2.2.1 通用寄存器\t22
2.2.2 堆栈指针\t23
2.2.3 程序计数器\t23
2.2.4 链接寄存器\t24
2.2.5 程序状态寄存器\t24
2.2.6 可中断重启指令\t27
2.2.7 异常屏蔽寄存器\t27
2.2.8 优先级屏蔽寄存器\t27
2.2.9 控制寄存器\t27
2.3 Cortex-M0+处理器的存储空间结构\t28
2.3.1 存储空间映射\t28
2.3.2 代码区域地址映射\t30
2.3.3 SRAM区域地址映射\t31
2.3.4 外设区域地址映射\t32
2.3.5 PPB地址空间映射\t34
2.3.6 SCS地址空间映射\t35
2.3.7 系统控制和ID寄存器\t36
2.4 Cortex-M0+处理器的端及分配\t40
2.5 Cortex-M0+处理器的异常及处理\t41
2.5.1 异常所处的状态\t41
2.5.2 异常类型\t41
2.5.3 异常优先级\t42
2.5.4 向量表\t43
2.5.5 异常的进入和返回\t44
2.5.6 NVIC中的中断寄存器集\t46
2.5.7 电平和脉冲中断\t48
2.6 Cortex-M0+处理器的存储器保护单元\t49
2.6.1 MPU寄存器\t50
2.6.2 MPU访问权限属性\t54
2.6.3 更新MPU区域\t55
2.6.4 子区域及用法\t55
2.6.5 MPU设计技巧和提示\t56
第3章 高级微控制器总线结构\t57
3.1 Arm AMBA系统总线\t57
3.2 AMBA APB规范\t58
3.2.1 AMBA APB写传输\t58
3.2.2 AMBA APB读传输\t59
3.2.3 AMBA APB错误响应\t60
3.2.4 AMBA APB操作流程\t61
3.2.5 AMBA3 APB信号\t62
3.3 AMBA AHB规范\t62
3.3.1 AMBA AHB结构\t62
3.3.2 AMBA AHB操作\t63
3.3.3 AMBA AHB传输类型\t66
3.3.4 AMBA AHB猝发操作\t67
3.3.5 AMBA AHB传输控制信号\t71
3.3.6 AMBA AHB地址译码\t72
3.3.7 AMBA AHB从设备传输响应\t72
3.3.8 AMBA AHB数据总线\t75
3.3.9 AMBA AHB传输仲裁\t77
3.3.10 AMBA AHB分割传输\t82
3.3.11 AMBA AHB复位\t84
3.3.12 AMBA AHB总线数据宽度\t84
3.3.13 AMBA AHB接口设备\t86
第4章 Cortex-M0+处理器指令集和应用\t88
4.1 Thumb指令集\t88
4.2 Keil MDK汇编语言指令格式要点\t89
4.2.1 汇编语言源代码中的文字\t89
4.2.2 汇编语言源代码行的语法\t89
4.2.3 汇编语言指令后缀的含义\t91
4.3 寄存器说明符的规则\t91
4.3.1 使用0b1111作为寄存器说明符的规则\t91
4.3.2 使用0b1101作为寄存器说明符的规则\t92
4.4 寄存器传输指令\t92
4.5 存储器加载和保存指令\t94
4.5.1 存储器加载指令\t94
4.5.2 存储器保存指令\t98
4.6 多数据加载和保存指令\t101
4.6.1 多数据加载指令\t101
4.6.2 多数据保存指令\t102
4.7 堆栈访问指令\t103
4.8 算术运算指令\t104
4.8.1 加法指令\t104
4.8.2 减法指令\t107
4.8.3 乘法指令\t108
4.8.4 比较指令\t109
4.9 逻辑操作指令\t110
4.10 移位操作指令\t112
4.10.1 右移指令\t112
4.10.2 左移指令\t114
4.11 反序操作指令\t115
4.12 扩展操作指令\t116
4.13 程序流控制指令\t117
4.14 存储器屏障指令\t120
4.15 异常相关指令\t121
4.16 休眠相关指令\t121
4.17 其他指令\t122
4.18 STM32G0的向量表格式\t123
4.19 配置堆和堆栈\t124
4.20 设计实例一:汇编语言程序的分析和调试\t125
4.20.1 冒泡排序算法的基本思想\t125
4.20.2 冒泡排序算法的设计实现\t126
4.20.3 冒泡排序算法的调试\t128
4.21 设计实例二:GPIO的驱动和控制\t130
4.21.1 STM32G071的GPIO原理\t130
4.21.2 所用寄存器的地址和功能\t132
4.21.3 GPIO驱动和控制的实现\t134
4.22 设计实例三:中断的控制和实现\t135
4.22.1 扩展中断和事件控制器(EXTI)原理\t136
4.22.2 所用寄存器的地址和功能\t141
4.22.3 向量表信息\t145
4.22.4 应用程序的设计\t147
4.22.5 程序代码的调试\t149
第5章 Cortex-M0+ C语言应用开发\t151
5.1 Arm C/C++编译器选项\t151
5.1.1 Arm编译器的优化级别\t151
5.1.2 Arm Compiler 5的参数设置选项\t155
5.1.3 Arm Compiler 6的参数设置选项\t157
5.2 CMSIS软件架构\t159
5.2.1 引入CMSIS的必要性\t160
5.2.2 CMSIS的架构\t160
5.2.3 CMSIS的优势\t161
5.2.4 CMSIS的编程规则\t161
5.2.5 CMSIS软件包\t162
5.2.6 使用CMSIS访问不同资源\t163
5.3 C语言设计实例一:输入/输出重定向的实现\t164
5.3.1 定制Microlib输入/输出函数\t164
5.3.2 输入/输出函数重定向的实现原理\t165
5.3.3 输入/输出函数重定向的具体实现\t166
5.4 C语言设计实例二:1602字符型LCD的驱动\t171
5.4.1 1602字符型LCD的原理\t171
5.4.2 1602字符型LCD的处理流程\t174
5.4.3 1602字符型LCD和开发板的硬件连接\t175
5.4.4 程序代码的设计\t176
5.5 C语言设计实例三:中断控制与1602字符型LCD的交互\t178
5.5.1 程序代码的设计\t178
5.5.2 C语言中断程序的分析\t179
5.6 C语言设计实例四:软件驱动的设计与实现\t181
5.6.1 创建HAL的设计实例\t181
5.6.2 创建LL的设计实例\t183
第6章 电源、时钟和复位的原理及应用\t186
6.1 电源系统的原理及功能\t186
6.1.1 电源系统框架\t186
6.1.2 电源监控\t188
6.1.3 低功耗模式\t190
6.2 RCC中的时钟管理功能\t194
6.2.1 RCC中的时钟源\t194
6.2.2 RCC中的时钟树结构\t194
6.3 RCC中的复位管理功能\t199
6.3.1 电源复位\t199
6.3.2 系统复位\t199
6.3.3 RTC域复位\t200
6.4 低功耗设计实例一:从停止模式唤醒MCU的实现\t201
6.4.1 设计策略和实现目标\t201
6.4.2 程序设计和实现\t201
6.5 低功耗设计实例二:定时器唤醒功耗分析\t206
6.6 低功耗设计实例三:运行模式和低功耗模式状态的显示\t210
6.6.1 第一种设计实现方法\t210
6.6.2 第二种设计实现方法\t212
第7章 看门狗的原理和应用\t214
7.1 独立看门狗的原理和功能\t214
7.1.1 IWDG的结构\t214
7.1.2 IWDG的工作原理\t215
7.1.3 IWDG时钟基准和超时的设置\t216
7.2 系统窗口看门狗的原理和功能\t216
7.2.1 WWDG的结构\t216
7.2.2 WWDG的工作原理\t217
7.2.3 WWDG时钟基准和超时值的设置\t217
7.2.4 WWDG中断\t218
7.3 独立看门狗设计实例:实现与分析\t218
7.3.1 生成工程框架\t218
7.3.2 添加设计代码\t220
7.3.3 设计下载和分析\t222
第8章 步进电机的驱动和控制\t223
8.1 低功耗定时器的结构及功能\t223
8.1.1 LPTIM的结构\t223
8.1.2 LPTIM的功能\t228
8.2 高级控制定时器的结构及功能\t229
8.2.1 TIM1的结构\t229
8.2.2 TIM1的功能\t230
8.3 设计实例:步进电机的驱动和信号测量\t265
8.3.1 步进电机的设计原理\t265
8.3.2 步进电机的驱动电路\t266
8.3.3 霍尔传感器的测速原理\t267
8.3.4 系统硬件连接\t268
8.3.5 在STM32CubeMX中配置参数\t268
8.3.6 在Keil ?Vision中添加设计代码\t271
8.3.7 设计处理和验证\t274
第9章 直流电机的驱动和控制\t276
9.1 脉冲宽度调制的原理\t276
9.2 直流风扇的驱动原理\t276
9.2.1 直流风扇的规范和连线\t276
9.2.2 PWM速度控制功能\t277
9.2.3 脉冲传感器(转速输出类型)\t278
9.3 通用定时器的原理\t278
9.3.1 TIM2/TIM3/TIM4的主要功能\t279
9.3.2 TIM14的主要功能\t280
9.3.3 TIM15的主要功能\t281
9.3.4 TIM16/TIM17的主要功能\t282
9.4 直流风扇驱动和测速的设计与实现\t283
9.4.1 系统设计策略\t283
9.4.2 系统硬件连接\t284
9.4.3 应用程序的设计\t285
9.4.4 设计处理和下载\t291
第10章 红外串口通信的设计和实现\t292
10.1 低功耗通用异步收发器的原理\t292
10.1.1 模块结构\t292
10.1.2 接口信号\t294
10.1.3 数据格式\t294
10.1.4 FIFO模式\t296
10.1.5 单线半双工模式\t296
10.1.6 多处理器通信\t296
10.1.7 发送器原理\t298
10.1.8 接收器原理\t298
10.1.9 波特率发生器\t299
10.1.10 唤醒和中断事件\t300
10.2 通用同步异步收发器的原理\t301
10.2.1 主要功能\t301
10.2.2 接收器过采样技术\t302
10.2.3 同步模式\t303
10.2.4 ISO/IEC 7816模式\t304
10.2.5 串行红外通信\t305
10.2.6 自动波特率检测\t306
10.2.7 接收器超时\t306
10.2.8 唤醒和中断事件\t306
10.3 设计实例:基于LPUART和红外接口的串行通信的实现\t307
10.3.1 红外串行通信设计思路\t307
10.3.2 串口的通信参数配置规则\t308
10.3.3 红外发射电路和红外接收电路的设计\t309
10.3.4 红外接口的原理\t311
10.3.5 信号的编码与解码\t313
10.3.6 红外通信系统的抗干扰设计\t313
10.3.7 发送端应用程序的设计与实现\t314
10.3.8 接收端应用程序的设计与实现\t319
第11章 音频设备的驱动和控制\t325
11.1 外设串行接口概述\t325
11.1.1 SPI模块的主要特性\t325
11.1.2 I2S模块的主要特性\t326
11.2 SPI模块的结构和功能\t326
11.2.1 SPI模块的结构\t326
11.2.2 一个主设备和一个从设备的通信\t327
11.2.3 标准的多个从设备通信\t329
11.2.4 多个主设备通信\t330
11.2.5 从设备选择引脚管理\t330
11.2.6 通信格式\t331
11.2.7 配置SPI\t332
11.2.8 使能SPI的步骤\t333
11.2.9 数据发送和接收过程\t333
11.2.10 SPI状态位\t340
11.2.11 SPI错误标志\t341
11.2.12 NSS脉冲模式\t342
11.2.13 TI模式\t342
11.2.14 CRC计算\t343
11.2.15 SPI中断\t344
11.3 I2S模块的结构和功能\t345
11.3.1 I2S模块的结构\t345
11.3.2 支持的音频标准\t346
11.3.3 启动说明\t349
11.3.4 I2S时钟生成器\t350
11.3.5 I2S主模式\t352
11.3.6 I2S从模式\t353
11.3.7 I2S状态位\t354
11.3.8 I2S错误标志\t355
11.3.9 DMA功能\t356
11.3.10 I2S中断\t356
11.4 设计实例:I2S模块与音频设备的交互设计\t356
11.4.1 数字音频接口\t358
11.4.2 音频数据格式\t358
11.4.3 音频模块硬件电路\t359
11.4.4 在STM32CubeMX中配置参数\t360
11.4.5 在Keil ?Vision中修改设计代码\t362
11.4.6 设计处理和验证\t365
第12章 实时时钟的原理和电子钟实现\t366
12.1 实时时钟的原理及功能\t366
12.1.1 RTC的功能和结构\t366
12.1.2 RTC低功耗模式\t377
12.1.3 RTC中断\t377
12.2 I2C总线的原理及功能\t377
12.2.1 I2C模块的结构\t378
12.2.2 I2C可编程时序\t381
12.2.3 I2C主设备时钟\t382
12.2.4 从设备寻址模式\t383
12.2.5 从停止模式唤醒\t384
12.2.6 数据传输的处理\t385
12.2.7 从模式\t386
12.2.8 对SMBus的支持\t387
12.2.9 中断和DMA\t388
12.2.10 低功耗模式\t389
12.3 OLED显示模块的原理\t389
12.3.1 OLED的性能和参数\t389
12.3.2 OLED模块的电路\t390
12.3.3 I2C总线写数据\t392
12.3.4 I2C的写模式\t392
12.3.5 I2C的数据位传输\t393
12.3.6 图形显示数据RAM\t394
12.3.7 存储器寻址模式\t395
12.3.8 OLED的初始化命令序列\t396
12.4 电子钟的应用设计\t397
12.4.1 在STM32CubeMX中配置参数\t397
12.4.2 在Keil ?Vision中添加设计代码\t401
12.4.3 设计下载和测试\t414
第13章 直接存储器访问的原理和实现\t416
13.1 DMA模块的原理\t416
13.1.1 STM32G071 MCU系统结构\t416
13.1.2 DMA模块的结构\t417
13.1.3 DMA传输\t417
13.1.4 DMA仲裁\t418
13.1.5 DMA通道\t418
13.1.6 DMA数据宽度、对齐和端\t421
13.1.7 DMA中断\t422
13.2 DMA请求多路选择器的原理\t422
13.2.1 DMAMUX的结构\t422
13.2.2 DMAMUX映射\t424
13.2.3 DMAMUX通道\t426
13.2.4 DMAMUX请求多路选择器\t426
13.2.5 同步模式和通道事件生成\t426
13.2.6 DMAMUX请求生成器\t428
13.2.7 DMAMUX中断\t429
13.3 设计实例:基于DMA的数据传输实现\t429
13.3.1 在STM32CubeMX中配置参数\t429
13.3.2 在Keil ?Vision中添加设计代码\t432
13.3.3 设计下载和调试\t434
第14章 信号采集和处理的实现\t435
14.1 ADC结构和功能\t435
14.1.1 ADC内部结构\t435
14.1.2 低功耗模式\t435
14.1.3 高性能特性\t438
14.1.4 ADC转换速度\t439
14.1.5 ADC时钟的选择\t439
14.1.6 ADC输入与ADC的连接关系\t440
14.1.7 ADC转换模式\t440
14.1.8 模拟看门狗\t441
14.1.9 数据传输和中断\t442
14.2 温度传感器和内部参考电压\t442
14.2.1 读取温度\t443
14.2.2 使用内部参考电压计算实际VREF+\t444
14.3 电池电压的监控\t444
14.4 设计实例一:模拟信号的采集与显示\t444
14.4.1 在STM32CubeMX中配置参数\t444
14.4.2 在Keil ?Vision中添加设计代码\t448
14.4.3 设计下载和调试\t452
14.5 DAC结构和功能\t453
14.5.1 DAC内部结构\t453
14.5.2 DAC通道使能\t456
14.5.3 DAC数据格式\t456
14.5.4 DAC转换\t456
14.5.5 DAC电压\t457
14.5.6 DAC触发选择\t457
14.5.7 DMA请求\t457
14.5.8 噪声生成\t458
14.5.9 生成三角波\t458
14.5.10 DAC通道模式\t459
14.5.11 DAC通道缓冲区标定\t461
14.5.12 双DAC通道转换模式(如果可用)\t462
14.5.13 低功耗模式\t466
14.6 基本定时器结构和功能\t466
14.7 设计实例二:使用示波器上的X-Y模式显示不同的图形\t467
14.7.1 设计目标和设计思路\t467
14.7.2 在STM32CubeMX中配置参数\t467
14.7.3 在Keil ?Vision中添加设计代码\t471
14.7.4 设计下载和测试\t480
第15章 嵌入式操作系统原理及应用\t483
15.1 操作系统的必要性\t483
15.1.1 单任务程序\t483
15.1.2 轮询程序\t483
15.2 操作系统基本知识\t484
15.2.1 操作系统的作用\t484
15.2.2 操作系统的功能\t484
15.2.3 嵌入式操作系统\t487
15.3 RT-Thread Nano架构及功能\t489
15.4 RT-Thread Nano在Keil MDK的移植\t490
15.4.1 安装RT-Thread Nano\t490
15.4.2 添加RT-Thread Nano\t491
15.4.3 适配RT-Thread Nano\t493
15.4.4 修改设计代码\t494
15.4.5 配置RT-Thread Nano\t495
15.5 RT-Thread Nano内核分析与实现\t497
15.5.1 线程及其管理\t498
15.5.2 线程的创建及调度的实现\t503
15.5.3 定时器的使用\t509
15.5.4 互斥量的使用\t511
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/5 18:46:26