配套资源 第1章嵌入式系统概述 1.1嵌入式系统的发展 1.2嵌入式系统的定义和特点 1.3嵌入式系统的开发流程 第2章初识STM32 2.1ARM Cortex系列架构 2.2STM32系列MCU 2.3STM32固件库 2.3.1获取HAL库固件包 2.3.2HAL库文件分析 第3章STM32的开发工具介绍及安装 视频讲解: 68分钟,5集 3.1生成工程模板——STM32CubeMX 3.1.1STM32CubeMX的安装 3.1.2固件包的安装 3.1.3配置并生成代码模板 3.2编辑编译工程——MDKARM、STM32CubeIDE 3.2.1MDKARM 3.2.2STM32CubeIDE 3.3调试下载工具 3.3.1STLINK 3.3.2DAPLink 3.4串行通信工具 3.5STM32硬件开发平台 3.6实验: 用STM32CubeMX和MDK创建工程项目并调试 3.6.1配置STM32CubeMX工程 3.6.2使用MDK打开并编辑工程 3.6.3连接开发板调试程序 3.7main()函数之前的启动流程 第4章通用输入/输出接口 视频讲解: 84分钟,5集 4.1GPIO简介 4.2GPIO的内部架构 4.3工作模式 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的STM32CubeMX配置 4.5GPIO的寄存器 4.6GPIO的HAL库函数 4.7实验: GPIO输出之点亮LED灯 4.7.1应用场景及目的 4.7.2原理图 4.7.3程序流程 4.7.4程序配置 4.7.5实验现象 4.8实验: GPIO输入之按键输入检测 4.8.1应用场景及目的 4.8.2原理图 4.8.3程序流程 4.8.4程序配置 4.8.5实验现象 4.9习题 第5章中断控制器NVIC与EXTI 视频讲解: 44分钟,3集 5.1什么是中断 5.2嵌套向量中断控制器NVIC 5.2.1NVIC简介 5.2.2NVIC的优先级 5.2.3NVIC的STM32CubeMX配置 5.3EXTI 5.3.1EXTI简介 5.3.2EXTI的内部架构 5.3.3GPIO的外部中断 5.3.4EXTI的STM32CubeMX配置 5.3.5EXTI的寄存器 5.3.6EXTI的HAL库配置流程 5.4实验: 用外部中断进行按键上升沿/下降沿检测 5.4.1应用场景及目的 5.4.2原理图 5.4.3程序流程 5.4.4程序配置 5.4.5实验现象 5.5习题 第6章时钟树与SysTick 视频讲解: 31分钟,3集 6.1时钟树 6.1.1时钟树简介 6.1.2时钟源 6.1.3多路复用器与分频/倍频器 6.1.4总线与外设 6.1.5时钟树的STM32CubeMX配置 6.2SysTick 6.2.1SysTick简介 6.2.2SysTick的HAL库函数 6.3实验: SysTick之闪灯实验 6.3.1应用场景及目的 6.3.2程序配置 6.3.3实验现象 6.4习题 第7章串行通信USART 视频讲解: 85分钟,5集 7.1通信方式分类 7.1.1按照连接方式分类 7.1.2按照同步方式分类 7.1.3按照传输方向分类 7.2串行通信简介 7.2.1常见的串行通信协议 7.2.2波特率和采样速率 7.2.3USART的数据帧格式 7.3USART简介 7.4USART的内部架构 7.5USART的STM32CubeMX配置 7.6USART的寄存器 7.7USART的HAL库函数 7.7.1初始化函数 7.7.2轮询模式 7.7.3中断模式 7.8实验: USART之重定向printf() 7.8.1应用场景及目的 7.8.2原理图 7.8.3程序配置 7.8.4实验现象 7.9实验: USART之定长数据的发送与接收(轮询方式) 7.9.1应用场景及目的 7.9.2程序配置 7.9.3实验现象 7.10实验: USART之不定长数据的发送与接收(中断方式) 7.10.1应用场景及目的 7.10.2程序配置 7.10.3实验现象 7.11习题 第8章直接存储器访问 视频讲解: 28分钟,2集 8.1DMA简介 8.2DMA的内部架构 8.3DMA的通道 8.4DMA的中断 8.5DMA的STM32CubeMX配置 8.6DMA的寄存器 8.7DMA的HAL库函数 8.8实验: USART之空闲中断与 DMA配合接收 8.8.1应用场景及目的 8.8.2程序配置 8.8.3实验现象 8.9习题 第9章定时器TIM 视频讲解: 121分钟,8集 9.1定时器TIM简介 9.2基本定时器TIM6/TIM7 9.2.1概述 9.2.2基本定时器的内部架构 9.3通用定时器TIM2/TIM3/TIM4/TIM5 9.3.1概述 9.3.2通用定时器的内部架构 9.3.3通用定时器的寄存器 9.4计数模式 9.4.1计数原理 9.4.2计数模式的STM32CubeMX配置 9.4.3计数模式的HAL库函数 9.5输入捕获模式 9.5.1输入捕获原理 9.5.2输入捕获模式的STM32CubeMX配置 9.5.3输入捕获模式的HAL库函数 9.6输出比较模式 9.6.1输出比较原理 9.6.2输出比较模式的STM32CubeMX配置 9.6.3输出比较模式的HAL库函数 9.7PWM模式 9.7.1STM32的PWM模式 9.7.2PWM的STM32CubeMX配置 9.7.3PWM的HAL库函数 9.8实验: 基于基本定时器的翻转LED指示灯 9.8.1应用场景及目的 9.8.2原理图 9.8.3程序配置 9.8.4实验现象 9.9实验: 基于通用定时器的按键输入捕获实验 9.9.1应用场景及目的 9.9.2程序流程 9.9.3原理图 9.9.4程序配置 9.9.5实验现象 9.10实验: 基于通用定时器的PWM驱动风扇和电动机 9.10.1应用场景和目的 9.10.2程序流程 9.10.3原理图 9.10.4程序配置 9.10.5实验现象 9.11习题 第10章模数转换器 视频讲解: 63分钟,5集 10.1模数转换简介 10.2STM32的ADC简介 10.2.1概述 10.2.2ADC的内部架构 10.3ADC时钟与采样时间 10.3.1ADC时钟 10.3.2ADC采样时间 10.4规则通道与注入通道 10.4.1STM32CubeMX配置 10.4.2寄存器 10.4.3HAL库函数 10.5单次转换与连续转换模式 10.5.1单次转换 10.5.2连续转换 10.5.3不连续转换 10.5.4STM32CubeMX配置 10.5.5寄存器 10.5.6HAL库函数 10.6ADC的DMA传输方式 10.7实验: ADC 单通道轮询方式读取 10.7.1应用场景及目的 10.7.2程序配置 10.7.3实验现象 10.8实验: ADC 多通道轮询方式读取 10.8.1应用场景及目的 10.8.2程序配置 10.8.3实验现象 10.9实验: ADC的DMA读取(五向按键) 10.9.1应用场景及目的 10.9.2程序流程 10.9.3原理图 10.9.4程序配置 10.9.5实验现象 10.10习题 第11章串行外设接口 视频讲解: 72分钟,4集 11.1SPI总线简介 11.2STM32的SPI接口 11.2.1特性 11.2.2SPI的内部架构 11.3SPI的STM32CubeMX配置 11.4SPI的寄存器 11.5SPI的HAL库函数 11.6实验: 用SPI总线驱动显示屏 11.6.1应用场景及目的 11.6.2LCD基础知识 11.6.3ILI9341驱动芯片 11.6.4程序流程 11.6.5原理图 11.6.6程序配置 11.6.7实验现象 11.7实验: 用SPI总线显示图片 11.7.1应用场景及目的 11.7.2图片转换原理 11.7.3程序配置 11.7.4实验现象 11.8习题 第12章四路串行外设接口 视频讲解: 37分钟,2集 12.1QSPI简介 12.2STM32的QSPI接口 12.3STM32CubeMX配置 12.4HAL库函数 12.5实验: 用QSPI总线驱动NOR Flash W25Q128 12.5.1应用场景及目的 12.5.2W25Q128 12.5.3程序流程 12.5.4原理图 12.5.5程序配置 12.5.6实验现象 12.6习题 第13章内部集成电路总线I2C 视频讲解: 54分钟,4集 13.1I2C总线基础知识 13.1.1I2C简介 13.1.2电路原理 13.1.3通信时序 13.2STM32的I2C接口 13.2.1特性 13.2.2内部架构 13.3I2C的STM32CubeMX配置 13.4I2C的HAL库函数 13.5实验: 用I2C总线读取温湿度传感器 13.5.1应用场景及目的 13.5.2SHT20温湿度传感器 13.5.3程序流程 13.5.4原理图 13.5.5程序配置 13.5.6实验现象 13.6实验: 用I2C总线驱动触摸屏 13.6.1应用场景及目的 13.6.2FT6336触摸屏芯片 13.6.3原理图 13.6.4程序配置 13.6.5实验现象 第14章实时时钟 视频讲解: 35分钟,2集 14.1RTC简介 14.2RTC的功能 14.2.1RTC二进制、BCD或混合模式 14.2.2实时时钟和日历 14.2.3可编程闹钟 14.2.4时间戳功能 14.2.5备份寄存器 14.3RTC的STM32CubeMX配置 14.4RTC的寄存器 14.5RTC的HAL库函数 14.6实验: 驱动RTC 14.6.1应用场景及目的 14.6.2程序配置 14.6.3实验现象 14.7习题 第15章独立看门狗 视频讲解: 13分钟,2集 15.1IWDG简介 15.2内部架构 15.3功能和时序 15.4STM32CubeMX配置 15.5IWDG的HAL库函数 15.6IWDG的寄存器 15.7实验: 用按键实现看门狗重载 15.7.1应用场景及目的 15.7.2程序配置 15.7.3实验现象 15.8习题 第16章综合项目: 智能手表 16.1软件系统方案 16.2TouchGFX 16.3界面设计 参考文献