您的浏览器不支持JavaScript,请开启后继续
面向人工智能的嵌入式设计与开发(赵志桓)

面向人工智能的嵌入式设计与开发(赵志桓)

  • 作者
  • 赵志桓 著

本书内容包括嵌入式介绍、GPIO端口基本使用、C语言编程基础、GPIO端口输入模式、串口通信、中断系统、Systick定时器、LCD液晶显示屏、触摸屏驱动、RTC实时时钟、温湿度传感器和实战项目。 本书可供电气、自动化类专业本、专科课程教学和大学生创新实践使用和参考,课后资料可扫描二维码或从化学工业出版社教学资源网www.cipedu. ***搜索本书查看和下载。


  • ¥45.00

ISBN: 978-7-122-35522-5

版次: 1

出版时间: 2026-09-06

图书信息

ISBN:978-7-122-35522-5

语种:汉文

开本:16

出版时间:2026-09-06

装帧:平

页数:140

内容简介

本书内容包括嵌入式介绍、GPIO端口基本使用、C语言编程基础、GPIO端口输入模式、串口通信、中断系统、Systick定时器、LCD液晶显示屏、触摸屏驱动、RTC实时时钟、温湿度传感器和实战项目。
本书可供电气、自动化类专业本、专科课程教学和大学生创新实践使用和参考,课后资料可扫描二维码或从化学工业出版社教学资源网www.cipedu. ***搜索本书查看和下载。


作者简介

赵志桓,山东农业工程学院副教授,负责学校智能感知与控制系统课程群建设,教育部“信盈达CDIO协同创新实践平台”实验中心主任,山东材料学会常务理事,校工程创新社团指导老师。具有多年半导体项目研发经历。

编辑推荐

《面向人工智能的嵌入式设计与开发》课后资料可扫描二维码查看和下载,读者可自行购买相关材料进行制作。

图书前言

ARM V7是Cortex-M3的组成硬件之一,它的主频运行速度为72MHz,不但可以使用 Thumb-2 指令集,还具备其他特殊的新性质。与 ARM7 TDMI进行对比,Cortex-M3具备性能更加强大、代码密度更高、位带操作、中断为可嵌套使用、成本小、功耗小等优势。STM32系列芯片由意法半导体公司(STMicroelectronics)生产,是当下非常热门的芯片。STM32系列产品基于超低功耗的ARM Cortex-M3处理器内核,采用意法半导体独有的两大节能技术,在所有产品中,大量的管脚、外设和软件都是可以共同使用的,兼容性强大,开发人员可以通过它的兼容性来极大地提高设计的灵活性。Cortex-M3核的处理器的特点就是用于低端的设备控制。与89C51相比,STM32具有13级的流水线指令处理能力,集成了许多外设,以寄存器的方式操作,大大提高了芯片执行速度,具有响应快的特点。内部的RAM、ROM的空间也比较大,可以下载和运行更多代码,还可以在小型系统中使用,有利于多任务操作。由此可见,STM32的前景非常好,这几年ST公司在中国大力推广它的产品,国内部分半导体厂商也在生产类似芯片,更能体现出STM32在未来几年中在电子行业里受重视的程度。另外,芯片的价格很低。
STM32具有以下独有优势。
1.超低价格。STM32最大的优势是,它拥有32位机的性能,但仅是8位机的价格。
2.很多外围设备。TIMER、RTC、FSMC、IIC、USB、SPI、IIS、SDIO、CAN、DAC、ADC、DMA等许多外设都可以连在STM32上,从这些外设可以看出,STM32的集成度很高。
3.芯片种类繁多。M3是STM32的一种内核,这种内核有F100、F101、F102、F103、F105、F107、F207、F217共8个系列,这8个系列又有上百种型号,而且还有不同的封装可供选择,如QFN、LQFP、BGA等。与此同时,M3芯片中还有功耗极低的STM32L和可以进行无线通信的STM32W。
4.性能实时性好。STM32中的所有管脚都可以当作中断输入,共有84个中断,因而有16级可编程优先级。
5.功耗控制极为优秀。STM32的每个外设都有独立控制开关的时钟,当功耗太高时,可以关闭不用的外设时钟,这样就能降低功耗。
6.开发成本低。STM32下载程序时只需要一个串口即可,无须花费大量金钱购买价格极高的仿真器,而且STM32可以使用SWD和JTAG两种调试口。当使用SWD实现仿真调试时,只需要两个IO口,极为方便。
本书由赵志桓著,同时得到了深圳信盈达科技有限公司牛乐乐总经理、济南信盈达电子技术有限公司袁魁总经理、何文宾工程师、邹竟飞工程师和山东农业工程学院廖希杰的大力支持,在此表示衷心的感谢。
由于时间仓促,书中难免有不足之处,恳请广大读者不吝批评指正。

著者    
2019年10月

目录

第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 主机复位信号和DHT11响应信号	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

发送电子邮件联系我们