第1章 嵌入式介绍 1
1.1嵌入式概述 1
1.2 Cortex-M3芯片介绍 3
1.2.1 Cortex-M系列芯片分类 3
1.2.2 STM32F10x系列的命名规则 3
1.2.3 Cortex-M3芯片产品分类 4
1.2.4 STM32F103ZET6芯片内部资源 4
1.2.5 STM32F103ZET6内部结构 5
1.3 STM32F10x最小系统 6
1.4嵌入式开发软件安装 7
1.4.1编译软件安装 7
1.4.2驱动程序安装 8
1.4.3下载测试 9
课后资料 9
第2章GPIO端口基本使用 10
2.1 STM32F10x芯片GPIO模块介绍 10
2.2 STM32F10x芯片GPIO端口功能介绍 11
2.2.1 STM32F10x芯片GPIO端口功能 11
2.2.2 STM32F10x芯片GPIO端口内部框图 11
2.2.3 STM32F10x芯片时钟使能 13
2.2.4 STM32F10x芯片GPIO端口相关库函数 14
2.3 GPIO模块程序软件设计(驱动LED) 18
思考 19
课后资料 19
第3章C语言编程基础 20
3.1 C语言体系介绍 20
3.1.1 C语言主要特点 20
3.1.2嵌入式C程序基本结构 22
3.1.3 C语言编程规范 22
3.2嵌入式C语言基本数据类型 23
3.3数据常量和数据变量 25
3.4 C语言运算符与表达式 26
3.4.1运算符与表达式的概念 26
3.4.2逻辑运算符 27
3.4.3位运算符 28
3.4.4运算符优先级 28
3.4.5数据类型转换运算 28
3.5函数 29
3.5.1函数模型 30
3.5.2实际参数 30
3.5.3函数应用 30
3.5.4函数和变量的作用范围 31
3.6宏定义与模块化编程 32
3.6.1宏定义 32
3.6.2条件编译 32
3.6.3模块化编程 33
3.7模块化编程软件设计 34
思考 37
课后资料 37
第4章GPIO端口输入模式 38
4.1嵌入式C语言基本结构 38
4.1.1顺序结构 38
4.1.2选择结构 39
4.1.3循环结构 41
4.1.4转移语句 43
4.2嵌入式单片机输入系统 44
4.2.1单片机按键介绍 44
4.2.2 GPIO输入功能程序设计 45
4.2.3按键扫描程序设计 46
思考 49
课后资料 49
第5章 串口通信 50
5.1通用USART通信介绍 50
5.1.1通信的概述 50
5.1.2串行通信分类 51
5.1.3串行通信数据的传输速度 52
5.1.4串行通信工作方式 53
5.1.5串口发送数据的格式 53
5.2 STM32F10x芯片USART模块介绍 53
5.2.1 STM32F10x芯片USART模块概述 53
5.2.2 STM32F10x芯片USART模块内部框图 54
5.2.3 STM32F10x芯片USART模块特征 56
5.3 STM32F10x外设管脚复用 57
5.4 STM32F10x芯片USART模块相关库函数 58
5.4.1 USART_Init函数 58
5.4.2 USART_Cmd函数 60
5.4.3 USART_ITConfig函数 60
5.4.4 USART_SendData函数 61
5.4.5 USART_ReceiveData函数 61
5.4.6 USART_GetFlagStatus函数 62
5.4.7 USART_ClearFlag函数 62
5.4.8 USART_GetITStatus函数 63
5.4.9 USART_ClearITPendingBit函数 63
5.5 USART模块程序软件设计 64
5.5.1 USART_1硬件设置 64
5.5.2 USART1模块软件设计 64
思考 68
课后资料 68
第6章 中断系统 69
6.1中断介绍 69
6.1.1中断和中断源的概念 69
6.1.2中断执行过程 70
6.1.3中断使用的意义 70
6.1.4中断优先级和中断嵌套 71
6.2 STM32F10x中断系统介绍 71
6.2.1 NVIC控制器介绍 71
6.2.2 STM32F10x异常向量表 72
6.2.3 STM32F10x中断优先级设置 75
6.3 STM32F10x中断系统相关库函数 75
6.3.1 NVIC_Init函数 75
6.3.2 NVIC_PriorityGroupConfig函数 76
6.4中断软件示例 77
6.4.1中断服务函数编写原则 77
6.4.2 NVIC中断软件设计 77
思考 79
课后资料 79
第7章SysTick定时器 80
7.1 SysTick定时器介绍 80
7.1.1 SysTick定时器概述 80
7.1.2 STM32F10x系列SysTick定时器概述 80
7.1.3 SysTick定时器初始值计算 81
7.2 SysTick定时器相关库函数 81
7.2.1 SysTick_CLKSourceConfig函数 82
7.2.2 SysTick_Config函数 82
7.2.3 SysTick定时器软件设计 82
课后资料 85
第8章LCD液晶显示屏 86
8.1 LCD液晶显示屏介绍 86
8.1.1单片机常见显示设备 86
8.1.2 LCD液晶显示屏显示系统 87
8.1.3彩色LCD液晶显示屏参数 87
8.1.4 ZZH Cortex-M开发板LCD模块介绍 87
8.2液晶显示控制器(ILI9486) 88
8.2.1 ILI9486控制器协议介绍 88
8.2.2 ILI9486控制器颜色设置 89
8.2.3 ILI9486控制器初始化 90
8.2.4 ILI9486控制器控制命令 90
8.3 LCD液晶显示屏字模软件应用 92
8.4 LCD液晶显示屏程序设计 95
课后资料 96
第9章 触摸屏驱动 97
9.1触摸屏的工作原理和类型 97
9.2触摸屏控制芯片XPT2046 98
9.2.1触摸屏硬件连接 98
9.2.2 XPT2046控制器应用 98
9.3触摸屏校准 103
9.3.1触摸屏校准的目的和原理 103
9.3.2触摸屏校准步骤 103
9.3.3触摸屏软件设计 104
课后资料 105
第10章RTC实时时钟 106
10.1 RTC实时时钟介绍 106
10.1.1 RTC实时时钟概念 106
10.1.2 RTC实时时钟时间基准 107
10.1.3常用RTC外设芯片 107
10.2 STM32F10x芯片RTC模块介绍 107
10.2.1 STM32F10x芯片RTC模块概述 107
10.2.2 STM32F10x芯片备份存储器(BKP)介绍 108
10.2.3 STM32F10x芯片RTC模块内部框图 109
10.3 STM32F10x芯片RTC模块相关库函数 110
10.3.1 RTC_ITConfig函数 110
10.3.2 RTC_EnterConfigMod函数 110
10.3.3 RTC_ExitConfigMode函数 111
10.3.4 RTC_GetCounter函数 111
10.3.5 RTC_WaitForLastTask函数 111
10.3.6 RTC_SetCounter函数 111
10.3.7 RTC_SetPrescaler函数 112
10.3.8 RTC_SetAlarm函数 112
10.3.9 RTC_WaitForSynchro函数 112
10.3.10 RTC_GetFlagStatus函数 112
10.3.11 RTC_ClearFlag函数 113
10.3.12 RTC_GetITStatus函数 113
10.3.13 RTC_ClearITPendingBit函数 113
10.3.14 BKP_ReadBackupRegister函数 114
10.3.15 BKP_WriteBackupRegister函数 114
10.3.16 PWR_BackupAccessCmd函数 114
10.3.17 RCC_LSEConfig函数 115
10.3.18 RCC_RTCCLKConfig函数 115
10.3.19 RCC_RTCCLKCmd函数 116
10.4 RTC软件设计 116
课后资料 123
第11章 温湿度传感器 124
11.1 DHT11产品介绍 124
11.1.1 DHT11概述 124
11.1.2应用领域 124
11.1.3传感器性能说明 125
11.1.4测量分辨率 125
11.1.5电气特性 125
11.2模块接口说明 126
11.2.1模块连接电路图 126
11.2.2管脚说明 126
11.2.3电源管脚 127
11.2.4 DHT11数据传输流程 127
11.2.5主机复位信号和DHT 11响应信号 127
11.2.6 DHT11数据表示方法 128
11.2.7 DHT11数据结构 129
11.3 DHT11软件设计 129
课后资料 133
参考文献 134
附录 136
附录A Cortex-M3开发板介绍 136
附录A.1 Cortex-M3开发板资源图 136
附录A.2 Cortex-M3开发板资源介绍 136
附录B C语言运算符优先级 139