嵌入式系统设计(STM32)第7讲资料
- 格式:ppt
- 大小:1.36 MB
- 文档页数:66
嵌入式系统stm32课程设计一、课程目标知识目标:1. 理解嵌入式系统基本概念,掌握STM32的硬件结构和编程环境。
2. 学会使用C语言进行STM32程序设计,理解中断、定时器等基本原理和应用。
3. 掌握嵌入式系统外围设备的使用,如LED、按键、串口等,并能进行简单的系统集成。
技能目标:1. 能够运用所学知识,设计并实现具有实际功能的嵌入式系统项目。
2. 培养学生的动手实践能力,提高问题解决能力和程序调试技巧。
3. 增强团队协作能力,通过项目实践,学会分工合作和沟通交流。
情感态度价值观目标:1. 培养学生对嵌入式系统的兴趣,激发学习热情,形成自主学习的习惯。
2. 树立正确的工程观念,注重实际应用,关注技术发展,提高创新意识。
3. 培养学生的责任心,使其认识到所学知识对社会和国家的贡献,树立远大理想。
课程性质:本课程为实践性较强的课程,结合理论知识和实际操作,培养学生的嵌入式系统设计能力。
学生特点:学生具备一定的电子技术基础和编程能力,对嵌入式系统有一定了解,但缺乏实际项目经验。
教学要求:结合课程特点和学生学习情况,注重理论与实践相结合,通过项目驱动,引导学生主动探究,提高解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 嵌入式系统概述- 嵌入式系统的定义、特点与应用领域- STM32微控制器简介2. STM32硬件结构与编程环境- STM32的内部结构、外设接口- Keil MDK集成开发环境的使用3. STM32编程基础- C语言基础回顾- STM32程序框架与编译过程- 中断、定时器等基本原理及应用4. 外围设备使用- LED、按键、串口等外设的原理与编程- ADC、PWM等模拟外设的使用5. 嵌入式系统项目实践- 设计并实现具有实际功能的嵌入式系统项目- 项目分析与需求分析- 硬件电路设计与软件编程6. 课程总结与拓展- 课程知识梳理与巩固- 探讨嵌入式系统发展趋势与前沿技术教学内容安排与进度:第1-2周:嵌入式系统概述、STM32硬件结构与编程环境第3-4周:STM32编程基础第5-6周:外围设备使用第7-8周:嵌入式系统项目实践第9-10周:课程总结与拓展教学内容与教材关联性:本教学内容紧密结合教材,按照教材章节顺序进行教学,确保学生能够系统地掌握嵌入式系统STM32的知识点和技能。
嵌入式系统设计STM32第7讲概述本文主要介绍嵌入式系统设计中STM32控制器的应用。
嵌入式系统是一种为特定应用设计的计算机系统,主要应用于工业、交通、医疗、家电等领域。
STM32是一种高性能、低功耗的嵌入式控制器,常用于各种嵌入式设备的控制系统内。
STM32控制器STM32控制器是由意法半导体公司生产的一款嵌入式系统控制器。
STM32控制器具有高性能、低功耗、丰富的外设和易于开发等特点。
在嵌入式系统设计中,STM32控制器被广泛应用于各种应用,如:智能家居、智能交通等。
嵌入式系统设计嵌入式系统设计主要涉及硬件设计和软件开发两个方面。
硬件设计主要包括电路设计、板级设计和系统框架设计等,软件开发则主要包括底层驱动程序、操作系统和应用程序开发等。
在嵌入式系统设计中,STM32控制器作为嵌入式系统的核心控制器,起到关键的作用。
STM32控制器应用GPIO应用GPIO是STM32中的一种常用外设,是通用输入输出端口的缩写。
在STM32控制器中,GPIO端口有多种模式,如输入模式、输出模式、复用功能模式等。
使用GPIO可以很方便地实现对外设的控制和读取,例如LED、按键等外设的控制。
中断应用中断是STM32中常用的一种事件处理方法。
当外设发生某些事件,例如按键被按下、定时器溢出等,STM32控制器会通过中断的方式通知CPU,CPU执行相应的中断处理程序。
使用中断可以极大提高系统的响应速度和效率。
定时器应用定时器是STM32中常用的一种外设,一般用于产生一定时间间隔的中断及控制外设的及时操作。
STM32中支持多种定时器模式,例如定时器基本模式、PWM模式、输入捕获模式等。
在嵌入式系统中,使用定时器可以方便地实现周期性定时、脉冲计数等操作。
串口通信应用串口通信是STM32中常用的通信方式。
STM32中支持多种串口通信协议,如UART、USB等。
串口通信可以实现与外设的通信和与PC机的通信,常用于数据传输、程序调试等应用场景。
嵌入式系统(STM32微控制器)实训指导书意法半导体公司的STM32微控制器具有32位字长的CPU,使用精简指令系统(RISC)。
精简指令系统的指令字长固定,译码方便,相对于复杂指令系统(CISC),精简指令系统的处理效率更高。
具有32位字长CPU的STM32系列微控制器的处理能力远高于8位和16位单片机,同时集成了与32位CPU相适应的强大外设(如双通道ADC、多功能定时器、7通道DMA、SPI等),能够完成过去一般单片机所无法达到控制功能。
现在,已经形成了以8位单片机为主流的低端产品和以32位微控制器为主流的高端产品两大市场。
对于自动化领域的从业人员,了解32位微控制器的结构、特点,掌握其使用方法,是很有必要的。
一、关于学习方法此前,我们已经学习过《C语言程序设计》、《微机原理》、《单片机原理及应用》等相关课程。
这些课程的学习是系统的、完整的、全面的,是有老师讲授的。
这种学习方法,适合在学校学习一些重要的基础理论课程。
在工作中,我们常常会遇到新的东西,需要以已有的知识作为基础,去解决问题、完成任务。
这就需要不同于前述的另一种学习方法。
这种方法是建立在自学基础上的,以解决实际问题为目的,允许通过局部的、模仿性的手段,来实现既定目标。
这种方法在工程实践中的应用是非常普遍的。
“白猫黑猫,能抓住老鼠就是好猫”。
能解决问题的方法就是好方法。
本次实训采取的方法是:将参考资料发给同学,同学自学其中需要的部分。
在指导教师引导下,体验各个控制项目、理解各组成部分,再以原控制软件为基础进行修改和移植,获得要达到的控制效果。
在本次实训中,我们使用的微控制器型号为STM32F103RB。
STM32F103RB是STM32微控制器系列中的一种,内部具有128KB程序存储器、20KB随机读写存储器、1个16位高级定时器、3个16位通用定时器、2个SPI、2个I2C、3个USART、1个USB、1个CAN、2个ADC。
芯片为64引脚LQFP封装,有51个I/O引脚。
《嵌入式系统设计(基于STM32F429)》第7章课后题参考答案1.外部中断的中断请求信号可以是控制器外部产生由GPIO引脚引入的,也可以是由控制器内部一些片上外设产生的。
这一说法是否正确?___正确_____。
2.每个GPIO引脚都可以作为外部中断信号输入引脚,GPIO引脚编号相同的映射到同一个EXTI线,那么GPIOA的0号引脚映射到EXTI线___0_____,GPIOD的0号引脚映射到EXTI线_____0___,GPIOC 的5号引脚映射到EXTI线_____5___,GPIOG的10号引脚映射到EXTI线____10____。
3.外部中断信号输入的触发信号形式可以是__上升沿触发_、_下降沿触发_、_边沿触发_、。
4.每个外部中断在中断向量表中,是否都独立占用一个位置?__不是__5.外部中断___5~9_____共用一个中断向量和外部中断__10~15__共用一个中断向量。
6.外部中断的中断0在库函数启动文件中定义的默认中断函数名是__EXTI0_IRQHandler__。
7.函数SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0)有什么功能?答:连接GPIOA的0号引脚到EXTI08.函数void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)有什么功能?答:初始化外部中断功能。
9.应用外部中断,需要先使能GPIO端口的时钟和___ SYSCFG___时钟。
10.试述初始化外部中断的步骤。
答:(1)使能用到GPIO时钟和SYSCFG时钟。
(2)初始化相应GPIO的引脚为输入。
(3)设置GPIO引脚与EXTI线的映射关系。
(4)初始化工作类型、设置触发条件、使能等等。
(5)配置中断分组(NVIC),并初始化相应中断通道的优先级及使能/禁止。
(6)编写中断服务函数。
(7)编写中断服务程序处理内容。
《嵌入式系统设计》课程教学大纲一、课程简介该课程主要以ARM公司的STM32F429微控制器为对象讲解嵌入式系统的设计方法和设计实例。
重点讲述嵌入式系统的基础知识、ARM cortex-M体系架构、STM32F429为微控制器内部构造及其常用的片上外设结构、应用实例、程序开发方法。
通过本课程的学习,使学生基本掌握嵌入式系统的构成,嵌入式系统软件、硬件系统的设计,进而为后续嵌入式系统的学习打好基础。
二、IntroductionThis course mainly takes stm32f429 microcontroller of arm company as the object to explain the design method and design example of embedded system. It focuses on the basic knowledge of embedded system, arm Cortex-M architecture, stm32f429 as the internal structure of microcontroller and its commonly used on-chip peripheral structure, application examples and program development methods. Through the study of this course, students can basically master the composition of embedded system, the design of embedded system software and hardware system, and then lay a good foundation for subsequent embedded system learning.三、课程的目的和任务1.目的和任务STM32F429是ST公司基于ARM公司Cortex-M系列内核设计的一款32位微控制器。
stm32系列课程设计一、课程目标知识目标:1. 理解STM32的基本结构和原理,掌握其内部硬件资源的使用方法。
2. 学会使用C语言进行STM32程序设计,掌握常用的数据类型、运算符、语法结构等。
3. 了解STM32的外设接口及功能,学会配置和使用各类外设。
技能目标:1. 能够运用所学知识,设计并实现基于STM32的小型嵌入式系统。
2. 培养学生动手实践能力,熟练使用调试工具,如仿真器、示波器等。
3. 提高学生的问题分析能力,培养解决实际问题的思维方法。
情感态度价值观目标:1. 培养学生对电子技术和嵌入式系统的兴趣,激发学习热情。
2. 培养学生良好的团队合作意识,学会与他人共同解决问题。
3. 培养学生严谨的科学态度,养成独立思考、积极探索的习惯。
本课程针对高年级学生,以STM32系列微控制器为载体,结合课本知识,深入浅出地介绍嵌入式系统设计。
课程注重实践操作,要求学生在掌握基本原理的基础上,能够运用所学知识解决实际问题。
通过本课程的学习,旨在提高学生的理论水平和实践能力,培养具备创新精神和实际操作能力的优秀人才。
二、教学内容1. STM32微控制器概述:介绍STM32系列微控制器的基本特点、结构原理和应用领域。
- 教材章节:第一章 嵌入式系统概述2. STM32硬件资源:学习STM32的内部结构、外设接口及功能。
- 教材章节:第二章 STM32硬件资源3. C语言编程基础:回顾C语言的基本语法、数据类型、运算符和程序结构。
- 教材章节:第三章 C语言编程基础4. STM32程序设计:学习基于C语言的STM32程序设计方法,掌握常用的库函数和编程技巧。
- 教材章节:第四章 STM32程序设计5. 外设驱动及应用:学习各类外设(如GPIO、USART、ADC等)的配置和使用,设计实际应用案例。
- 教材章节:第五章 外设驱动及应用6. 嵌入式系统设计:结合实际项目,培养学生设计、编程、调试嵌入式系统的能力。
嵌⼊式单⽚机STM32应⽤技术(课本)⽬录SAIU R20 1 6 第1页第1 章. 初识STM32 (1)1.1. 课前预习 (1)1.2. 概述 (1)1.3. 什么是STM32 (1)1.4. STM32 能做什么 (2)1.5. STM32 怎么选型 (3)1.5.1. STM32 分类 (3)1.5.2. STM32 命名⽅法 (4)1.5.3. 选择合适的MCU (4)1.5.4. PCB 哪⾥打样 (6)1.6. 总结 (7)1.7. 课后练习 (7)第2 章. STM32 的结构和组成 (8)2.1. 课前预习 (8)2.2. 概述 (8)2.3. 什么是寄存器 (8)2.4. STM 32 长啥样 (8)2.5. 芯⽚⾥⾯有什么 (10)2.5.1. ICode 总线 (10)2.5.2. 驱动单元 (10)2.5.3. 被动单元 (11)2.6. 存储器映射 (13)2.7. 寄存器映射 (14)2.7.1. STM32 的外设地址映射 (15)2.7.2. 总线基地址 (15)2.7.3. 外设基地址 (15)2.7.4. 外设寄存器 (16)2.8. C 语⾔对寄存器的封装 (16)2.8.1. 封装总线和外设基地址 (16)2.8.2. 封装寄存器列表 (17)2.9. 课后练习 (20)第3 章. 初识STM32 标准库 (21)3.1. 课前预习 (21)3.2. 概述 (21)3.3. 库⽬录、⽂件简介 (21)3.4. STM32F10x_StdPeriph_Driver ⽂件夹 (24)3.5. 库各⽂件间的关系 (26)3.6. 初识库函数 (28)⽬录第2 页SAIUR201 6陈德⾦⽼师编著3.7. 课后练习 (29)第4 章. GPIO 的使⽤ (30)4.1. 课前预习 (30)4.2. 概述 (30)4.3. GPIO 简介 (30)4.4. GPIO 框图剖析 (31)4.4.1. 保护⼆极管及上、下拉电阻 (31)4.4.2. P-MOS 管和N-MOS 管 (31)4.4.3. 输出数据寄存器 (33)4.4.4. 复⽤功能输出 (34)4.4.5. 输⼊数据寄存器 (34)4.4.6. 复⽤功能输⼊ (34)4.4.7. 模拟输⼊输出 (34)4.5. GPIO ⼯作模式 (35)4.5.1. 输⼊模式(模拟/浮空/上拉/下拉) (35)4.5.2. 输出模式(推挽/开漏) (35)4.5.3. 复⽤功能(推挽/开漏) (35)4.6. 点亮LED-硬件设计 (37)第5 章. STM32 RCC 时钟系统 (43)5.1. 课前预习 (43)5.2. 概述 (43)5.3. RCC 主要作⽤—时钟部分 (43)5.4. RCC 框图剖析—时钟部分 (43)5.5. 系统时钟 (44)5.5.1. HSE ⾼速外部时钟信号 (44)5.5.2. PLL 时钟源 (45)5.5.3. PLL 时钟PLLCLK (45)5.5.4. 系统时钟SYSCLK (45)5.5.5. AHB 总线时钟HCLK (45)5.5.6. APB2 总线时钟HCLK2 (45)⽬录SAIU R20 1 6 第3页5.5.7. 总线时钟HCLK1 (46)5.6. 设置系统时钟库函数 (46)5.7. 其他时钟 (47)5.7.1. USB 时钟 (47)5.7.2. Cortex 系统时钟 (47)5.7.3. ADC 时钟 (48)5.7.4. RTC 时钟、独⽴看门狗时钟 (48)5.7.5. MCO 时钟输出 (48)5.8. 配置系统时钟实验 (48)5.8.1. 使⽤HSE (48)5.8.2. 使⽤HSI (48)5.8.3. 硬件设计 (49)5.8.4. 软件设计 (49)5.8.5. 编程要点 (49)5.8.6. 代码分析 (49)5.8.7. 下载验证 (54)第6 章. STM32 中断应⽤概览 (55)6.1. 课前预习 (55)6.2. 概述 (55)6.3. 异常类型 (55)6.4. NVIC 简介 (56)6.5. NVIC 寄存器简介 (56)6.6. NVIC 中断配置固件库 (57)6.7. 优先级的定义 (58)6.7.1. 优先级定义 (58)6.7.2. 优先级分组 (58)6.8. 中断编程 (59)6.9. 课后练习 (60)第7 章. EXTI—外部中断/事件控制器 (61)7.1. 课前预习 (61)7.2. 概述 (61)7.3. EXTI 简介 (61)7.4. EXTI 功能框图 (61)7.5. 中断/事件线 (63)7.6. EXTI 初始化结构体详解 (64)7.7. 外部中断控制实验 (65)7.7.1. 硬件设计 (65)7.7.2. 软件设计 (65)⽬录第4 页SAIUR201 6陈德⾦⽼师编著7.7.3. 编程要点 (65)7.7.4. 代码分析 (65)7.7.5. 下载验证 (69)7.8. 课后练习 (69)第8 章. SysTick 系统定时器 (70)8.5.4. 代码分析 (73)8.6. 课后练习 (79)第9 章. USART—串⼝通讯 (80)9.1. 课前预习 (80)9.2. 概述 (80)9.3. 串⼝通讯协议简介 (80)9.3.1. 物理层 (80)9.3.2. 协议层 (84)9.4. STM32 的USART 简介 (85)9.5. USART 功能框图 (85)9.6. USART 初始化结构体详解 (90)9.7. USART1 接发通信实验 (91)9.7.1. 硬件设计 (92)9.7.2. 软件设计 (92)9.7.3. 编程要点 (92)9.7.4. 代码分析 (93)9.7.5. 下载验证 (97)9.8. 课后练习 (97)第10 章. DMA 直接存储区访问 (98)10.1. 课前预习 (98)10.2. 概述 (98)10.3. DMA 简介 (98)10.4. DMA 功能框图 (98)10.5. DMA 数据配置 (100)10.6. DMA 初始化结构体详解 (101)⽬录SAIU R20 1 6 第5页10.7. DMA 存储器到存储器模式实验 (103)10.7.1. 硬件设计 (103)10.7.2. 软件设计 (103)10.7.3. 编程要点 (103)10.7.4. 代码分析 (104)10.7.5. 下载验证 (107)10.8. 课后练习 (107)第11 章. TIM 基本定时器 (108)11.1. 课前预习 (108)11.2. 概述 (108)11.3. 定时器分类 (108)11.4. 基本定时器功能框图讲解 (109)11.5. 定时器初始化结构体详解 (110)11.6. 基本定时器定时实验 (111)11.6.1. 硬件设计 (111)11.6.2. 软件设计 (111)11.6.3. 编程要点 (111)11.6.4. 软件分析 (111)11.6.5. 下载验证 (114)11.7. 课后练习 (114)第12 章. TIM ⾼级定时器 (115)12.1. 课前预习 (115)12.2. 概述 (115)12.3. ⾼级控制定时器 (115)12.4. ⾼级控制定时器功能框图 (116)12.4.1. 时钟源 (117)12.4.2. 外部时钟模式1 (117)12.4.3. 外部时钟模式2 (118)12.4.4. 内部触发输⼊ (119)12.4.5. 输⼊捕获 (121)12.4.6. 输出⽐较 (122)12.4.7. 断路功能 (125)12.5. 输⼊捕获应⽤ (125)⽬录第6 页SAIUR201 6陈德⾦⽼师编著12.7.2. PWM 边沿对齐模式 (128)12.7.3. PWM 中⼼对齐模式 (129)12.8. 定时器初始化结构体详解 (129)12.8.1. TIM_TimeBaseInitTypeDef (130)12.8.2. TIM_OCInitTypeDef (130)12.8.3. TIM_ICInitTypeDef (131)12.8.4. TIM_BDTRInitTypeDef (132)12.9. PWM 互补输出实验 (133)12.9.1. 硬件设计 (133)12.9.2. 软件设计 (133)12.9.3. 编程要点 (133)12.9.4. 软件分析 (134)12.9.5. 下载验证 (136)第13 章. I2C 通讯 (138)13.1. 课前预习 (138)13.2. 概述 (138)13.3. I2C 协议简介 (138)13.3.1. I2C 物理层 (139)13.3.2. 协议层 (140)13.3.3. 通讯的起始和停⽌信号 (141)13.4. STM32 的I2C 特性及架构 (144)13.4.1. STM32 的I2C 外设简介 (144)13.4.2. STM32 的I2C 架构剖析 (145)13.4.3. 通讯过程 (147)13.5. I2C 初始化结构体详解 (149)13.6. I2C—读写EEPROM 实验 (150)13.6.1. 硬件设计 (150)13.6.2. 软件设计 (151)13.6.3. 编程要点 (151)13.6.4. 代码分析 (152)13.6.5. 下载验证 (167)13.7. 课后练习 (168)第14 章. SPI 通讯 (169)14.1. 课前预习 (169)14.2. 概述 (169)14.3. SPI 协议简介 (169)14.3.1. SPI 物理层 (169)14.3.2. 协议层 (171)⽬录SAIU R20 1 6 第7页14.4. STM32 的SPI 特性及架构 (173)14.4.1. STM32 的SPI 外设简介 (173)14.4.2. TM32 的SPI 架构剖析 (174)14.4.3. 通讯过程 (175)14.5. SPI 初始化结构体详解 (177)14.6. SPI—读写串⾏FLASH 实验 (178)14.6.1. 硬件设计 (179)14.6.2. 软件设计 (179)14.6.3. 编程要点 (180)14.6.4. 代码分析 (180)14.6.5. 下载验证 (198)14.7. 课后练习 (198)第15 章. 陀螺仪姿态检测 (199)15.1. 课前预习 (199)15.2. 概述 (199)15.3. 姿态检测 (199)15.3.1. 基本认识 (199)15.3.2. 坐标系 (200)15.4. 利⽤陀螺仪检测⾓度 (201)15.5. 利⽤加速度计检测⾓度 (202)15.9.2. MPU6050 模块的引脚功能说明 (205)15.9.3. MPU6050 模块的硬件原理图 (205)15.10. MPU6050 模块的特性参数 (206)15.11. MPU6050—获取原始数据实验 (207)15.11.1. 硬件设计 (207)15.11.2. 配套程序简介 (208)15.11.3. 软件设计 (209)15.11.4. 程序设计要点 (209)15.11.5. 代码分析 (209)15.11.6. 下载验证 (215)15.12. MPU6050—利⽤DMP 进⾏姿态解算 (216)15.12.1. 硬件设计 (216)15.12.2. 软件设计 (216)15.12.3. 程序设计要点 (216)⽬录第8 页SAIUR201 6陈德⾦⽼师编著15.12.4. 代码分析 (216)15.12.5. 下载验证 (226)15.13. MPU6050—使⽤第三⽅上位机 (227)15.13.1. 硬件设计 (227)15.13.2. 软件设计 (227)15.13.3. 程序设计要点 (227)15.13.4. 代码分析 (227)15.13.5. 下载验证 (231)第1 章.初识STM32SAIU R20 1 6 第1页第1 章. 初识STM321.1. 课前预习在书上找到答案。