STM32F0系列Cortex-M0原理与实践
2020-04-15 15:21:24 0 举报
AI智能生成
STM32F0系列Cortex-M0原理与实践
作者其他创作
大纲/内容
10 定时器
10.1 STM32F0定时器实现
10.2 功能描述
10.2.1 时基单元
10.2.2 计数器
10.2.3 时钟源
10.2.4 捕获/比较通道
10.2.5 输入捕获模式
10.2.6 强制输出模式
10.2.7 输出比较模式
10.2.8 PWM模式
10.2.9 互补输出和死区插入
10.2.10 使用刹车功能
10.2.11 产生六步PWM输出
10.2.12 编码器接口模式
10.3 固件库
10.4 SPWM实例
10.5 小结
11 模数转换器(ADC)
11.1 ADC主要特性
11.2 ADC功能描述
11.2.1 校准
11.2.2 ADC开关控制
11.2.3 ADC时钟
11.2.4 ADC配置
11.2.5 通道选择
11.2.6 转换模式
11.2.7 启动与停止转换
11.3 外部触发和触发极性
11.4 数据管理
11.5 低功耗特性
11.6 ADC中断
11.7 ADC固件库
11.8 STM32F05x(07x)的DAC与比较器
11.9 USB电压监测
11.10 小结
12 DMA控制
12.1 DMA主要特性
12.2 DMA功能描述
12.2.1 DMA原理
12.2.2 可编程的数据宽度、数据对齐方式和数据大小端
12.2.3 错误管理
12.2.4 中断
12.2.5 DMA请求映射
12.3 固件库
12.4 基于DMA的ADC采样
12.5 小结
13 串行外设接口/I2S音频(SPI/I2S)
13.1 简介
13.1.1 SPI主要特点
13.1.2 SPI/I2S具体功能实现
13.2 SPI功能描述
13.2.1 SPI框图
13.2.2 一主、一从通信
13.2.3 多从机通信
13.2.4 从机选择(NSS)的引脚管理
13.2.5 通信格式
13.2.6 SPI的初始化
13.2.7 数据发送和接收流程
13.2.8 状态标志
13.2.9 错误标志
13.3 SPI中断
13.4 SPI固件库
13.5 SPI相互通信实例
13.6 小结
14 2C接口
14.1 I2C的主要特点
14.2 I2C功能描述
14.2.1 I2C1框图
14.2.2 I2C模式
14.2.3 I2C的初始化
14.2.4 数据收发
14.2.5 I2C从机模式
14.2.6 I2C主模式
14.3 I2C中断
14.4 I2C固件库
14.5 读/写24C02实例
14.6 小结
15 控制器局域网bxCAN
15.1 bxCAN概述
15.2 bxCAN工作模式
15.2.1 初始化模式
15.2.2 正常模式
15.2.3 睡眠模式(低功耗)
15.2.4 测试模式
15.2.5 静默模式
15.2.6 环回模式
15.2.7 环回静默模式
15.3 bxCAN功能描述
15.3.1 发送
15.3.2 时间触发通信模式
15.3.3 接收管理
15.3.4 标识符过滤
15.3.5 报文存储
15.3.6 错误管理
15.3.7 位时间特性
15.4 bxCAN中断
15.5 bxCAN固件库
15.6 CAN通信实例
15.7 小结
16 RTX实时操作系统应用
16.1 RTX概述
16.1.1 RTX任务
16.1.2 RTX调度
16.2 任务通信
16.2.1 事件标志
16.2.2 互斥量
16.2.3 信箱
16.3 RTX基础配置
16.4 中断任务之间的通信实例
16.5 小结
17 USB电源监测
17.1 需求分析
17.2 硬件设计
17.3 软件设计
17.4 小结
1 低成本单片机世界的入侵者——Cortex-M0
1.1 相比8位(16位)机为何要选择Cortex-M0
1.1.1 性能对比
1.1.2 8位和16位体系结构的缺点
1.1.3 Cortex的软件移植性
1.2 如何从8位机过渡到Cortex-M0
1.3 编程模型
1.3.1 处理器的模式
1.3.2 堆栈
1.3.3 内核寄存器
1.4 存储器模型
1.4.1 存储区、类型和属性
1.4.2 存储器系统的存储器访问次序
1.4.3 存储器访问的行为
1.4.4 软件的存储器访问顺序
1.5 异常模型
1.6 电源管理
1.7 指令集
1.8 Cortex-M0内核外设
1.9 STM32F0系列
1.10 小结
2 开发软件准备
2.1 MDK-ARM开发环境
2.1.1 μVision4 IDE概述
2.1.2 编译、调试现有MDK工程
2.1.3 创建一个Keil新项目
2.2 仿真器
2.2.1 ST-Link
2.2.2 J-Link与U-Link2
2.3 WinMerge
2.4 小结
3 硬件基础
3.1 STM32F0产品特征
3.2 系统及存储器概述
3.2.1 系统构架
3.2.2 存储器组织
3.2.3 启动配置
3.3 电源控制(PWR)
3.3.1 电源
3.3.2 电源管理器
3.3.3 低功耗模式
3.3.4 PWR固件库
3.4 复位和时钟控制(RCC)
3.4.1 复位
3.4.2 时钟
3.4.3 低功耗模式
3.5 RCC固件库
3.6 硬件设计
3.7 小结
4 STM32F0的固件库
4.1 ARM的C语言
4.1.1 嵌入式C语言的几个特殊之处
4.1.2 寄存器访问方式总结
4.1.3 struct字节对齐
4.1.4 使用volatile
4.1.5 RAM中运行程序
4.1.6 软件结构
4.2 CMSIS
4.2.1 CMSIS主要构成
4.2.2 使用CMSIS
4.3 STM32F0xx标准外设库
4.3.1 标准外设库概述
4.3.2 STM32F0xx外设驱动文件说明
4.3.3 STM32F0xx的CMSIS文件说明
4.3.4 库文件夹说明
4.3.5 固件库文件
4.3.6 MDK ARM中使用固件库实例
4.4 小结
5 通用I/O(GPIO)
5.1 GPIO引脚与功能
5.1.1 引脚描述
5.1.2 GPIO功能描述
5.1.3 通用I/O(GPIO)
5.1.4 I/O引脚的复用功能和重映射
5.1.5 外部中断/唤醒线
5.1.6 输入配置
5.1.7 输出配置
5.1.8 复用功能配置
5.1.9 模拟配置
5.1.10 HSE或LSE引脚用作GPIO
5.1.11 备份域供电下GPIO引脚的使用
5.1.12 GPIO复用功能寄存器
5.2 GPIO固件库
5.3 GPIO应用实例
5.4 小结
6 中断和事件
6.1 嵌套向量中断控制器(NVIC)
6.1.1 NVIC概述
6.1.2 电平中断和脉冲中断
6.2 中断和异常向量
6.3 扩展中断和事件控制器(EXTI)
6.3.1 框图
6.3.2 事件管理
6.3.3 功能说明
6.3.4 外部和内部中断/事件线映像
6.4 EXTI固件库
6.5 EXTI中断实例
6.6 HardFault异常调试实例
6.7 小结
7 通用同步异步收发器(USART)
7.1 USART主要功能
7.2 STM32F0x的USART功能实现
7.3 USART功能描述
7.3.1 USART框图
7.3.2 USART字符描述
7.3.3 发送器
7.3.4 接收器
7.3.5 多机通信
7.3.6 Modbus通信
7.3.7 LIN(本地互联网络)模式
7.3.8 USART同步模式
7.3.9 单线半双工通信
7.3.10 RS-232硬件流控制和RS-485驱动使能
7.4 USART中断
7.5 USART固件库函数
7.6 基于USART实现的多个通信标准
7.7 接收不定长数据实例
7.8 小结
8 实时时钟(RTC)
8.1 主要特性
8.2 STM32F0的RTC功能实现
8.3 功能描述
8.3.1 RTC框图
8.3.2 被RTC控制的GPIO
8.3.3 时钟和预分频器
8.3.4 实时时钟和日历
8.3.5 可编程报警
8.3.6 RTC初始化及配置
8.3.7 读日历寄存器
8.3.8 复位过程
8.3.9 RTC同步
8.3.10 RTC参考时钟检测
8.3.11 RTC平滑数字校准
8.3.12 时间戳功能
8.3.13 侵入检测
8.3.14 校准时钟输出
8.3.15 报警输出
8.4 RTC低功耗模式
8.5 RTC中断
8.6 固件库
8.7 闹钟报警实例
8.8 小结
9 看门狗
9.1 STM32F0看门狗概述
9.2 独立看门狗(IWDG)
9.3 窗口看门狗(WWDG)
9.4 固件库
9.4.1 IWDG API
9.4.2 WWDG固件库
9.5 看门狗实例
9.6 小结
0 条评论
下一页