STM32嵌入式技术及应用 课件全套1-7 LED控制设计与实现 - -太阳能自动追光系统的设计与实现_第1页
STM32嵌入式技术及应用 课件全套1-7 LED控制设计与实现 - -太阳能自动追光系统的设计与实现_第2页
STM32嵌入式技术及应用 课件全套1-7 LED控制设计与实现 - -太阳能自动追光系统的设计与实现_第3页
STM32嵌入式技术及应用 课件全套1-7 LED控制设计与实现 - -太阳能自动追光系统的设计与实现_第4页
STM32嵌入式技术及应用 课件全套1-7 LED控制设计与实现 - -太阳能自动追光系统的设计与实现_第5页
已阅读5页,还剩712页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一LED控制设计与实现STM32F103入门指南绿色低碳理念STM32EMBEDDEDTECHNOLOGYSTM32嵌入式技术及应用目录01项目描述深入解析项目核心背景,系统梳理从环境搭建到功能实现的完整学习路径,为后续开发实践打下坚实基础。02项目目标构建涵盖知识、能力与素养的三维立体化教学目标体系,全方位提升学生的综合职业核心竞争力。03绿色低碳理念在现代嵌入式系统设计中深度融入节能环保的绿色理念,积极倡导并践行可持续的技术开发实践。开启学习之旅掌握STM32开发核心基础,树立绿色低碳环保意识,为后续深入学习与项目开发奠定坚实的技术基础。01项目描述了解项目背景与学习路径ProjectDescription项目描述项目定位本项目为STM32F103入门指南,旨在引导读者快速了解并掌握STM32开发环境搭建及使用方法。学习任务1创建固件库模板2点亮LED灯3实现闪烁控制4制作声光报警器学习目标通过完成上述任务,逐步掌握STM32驱动发光二极管的技巧,为后续复杂项目开发奠定基础。绿色低碳理念:项目设计中融入绿色低碳理念,注重节能与环保,倡导绿色开发实践。02项目目标明确学习的三维目标体系ProjectObjectives项目目标本项目旨在构建三维立体化教学目标体系,从知识、能力、素养三个维度全面提升学生的专业技能和综合素质知识目标器件手册识读掌握STM32F103基本性能参数开发环境熟悉了解常用集成开发环境固件库掌握理解开发流程和库函数能力目标环境搭建Keil+Proteus调试环境模板使用工程模板创建与管理电路编程LED驱动电路分析与编程素养目标编程规范遵循STM32编程规范团队协作团结协作,互相学习资料查找自主查找器件资料KnowledgeObjectives知识目标1器件手册识读学会识读器件手册,了解STM32F103的基本性能,包括处理器架构、时钟系统、外设资源等核心参数2集成开发环境了解STM32常用集成开发环境,如KeilMDK、IAR、STM32CubeIDE等,掌握各环境的特性和适用场景3固件库与开发流程了解STM32F103开发固件库及项目开发流程,掌握标准库、HAL库的使用方法和项目组织结构4绿色低碳设计原则了解绿色低碳嵌入式系统设计的基本原则和方法,学习如何在系统设计中实现节能降耗AbilityObjectives能力目标3电路分析与编程会分析STM32驱动LED灯的典型电路及程序编程,掌握GPIO配置、时钟使能、寄存器操作等核心技能1开发环境搭建能搭建KeilMDK开发环境+Proteus硬件调试环境,完成软件安装、工程配置、仿真调试等操作2工程模板使用会使用工程模板,理解启动文件、库文件、用户文件的组织结构,能够快速创建新项目4绿色低碳技术应用能够在嵌入式系统设计中应用绿色低碳技术,如低功耗模式、时钟管理、外设优化等节能措施QualityObjectives素养目标1编程规范意识了解STM32的编程规范,养成良好的代码编写习惯,包括命名规则、注释规范、代码结构等2团队协作精神学会团结协作,同学之间互相查缺补漏,培养良好的沟通能力和团队合作意识3自主学习能力学会查找最新器件的相关资料,培养自主学习和解决问题的能力,适应技术快速发展的需求4环保责任意识树立绿色低碳意识,关注嵌入式系统的环境影响,培养可持续发展的工程理念节能·环保·可持续03绿色低碳理念环保与技术的融合Green&Low-Carbon绿色低碳嵌入式系统设计绿色低碳理念融入项目设计中融入绿色低碳理念,注重节能与环保,倡导绿色开发实践。在嵌入式系统开发中,不仅要关注功能和性能,更要重视系统的能耗和环境影响。低功耗设计合理使用低功耗模式优化时钟树配置动态电压频率调节外设管理按需使能外设时钟及时关闭闲置外设优化外设工作模式代码优化提高代码执行效率减少无效循环和等待使用中断替代轮询设计原则在系统设计的每一个环节都考虑能耗优化,在满足功能需求的前提下,尽可能降低系统功耗,减少环境影响开启STM32学习之旅通过本项目学习,掌握STM32开发基础培养绿色低碳意识,为后续深入学习奠定坚实基础知识掌握能力提升素养养成STM32EmbeddedTechnologyGreen&Low-CarbonSTM32EMBEDDEDTECHNOLOGYSTM32嵌入式技术及应用任务1-1认识STM32微控制器ARMCortex-M3KeilMDK开发Proteus仿真项目一LED控制设计与实现目录CONTENTS01任务目标了解STM32基本概念,熟悉开发环境,掌握硬件仿真器知识,为后续项目开发打下基础02知识储备•什么是STM32•嵌入式系统定义•ARMCortex处理器、STM32系列微处理器03任务实施•搭建STM32开发环境•KeilMDK安装配置•Proteus软件入门•认识硬件仿真器04任务总结•核心知识点总结•技能提升要点建议课时:2学时难度等级:初级05提升训练与评价•提升训练题目•任务评价标准01TASKOBJECTIVES任务目标TASKOBJECTIVES任务目标了解STM32基本概念掌握STM32微控制器的定义、特点及应用范围理解ARMCortex-M3内核架构熟悉STM32F103系列命名规则建立嵌入式系统基础认知熟悉开发环境掌握KeilMDK集成开发环境的使用学会Proteus仿真软件的基本操作完成元件支持包的安装配置搭建完整的开发工具链掌握硬件仿真器了解J-Link、ULink、ST-Link等仿真器理解硬件仿真的工作原理为后续项目开发打下坚实基础具备软硬件联调能力学习成果:完成本任务后,你将能够独立搭建STM32开发环境,理解嵌入式系统的基本概念,为后续GPIO控制、定时器应用等复杂项目开发奠定坚实基础。02KNOWLEDGERESERVE知识储备什么是STM32EMBEDDEDSYSTEM嵌入式系统定义IEEE官方定义"用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统。"——IEEE(美国电气和电子工程师协会)国内认同度较高的定义以应用为中心专为特定应用场景设计,非通用计算设备以计算机技术为基础具备完整计算机系统的核心要素软硬件可裁剪根据应用需求灵活配置资源典型嵌入式系统示例智能心电监视仪医疗设备智能手表可穿戴设备汽车ECU汽车电子智能手机移动通信工业机器人自动化控制智能家居物联网应用三个关键属性嵌入性嵌入受控器件内部专用性为特定应用设计计算机系统具备计算能力CORECHARACTERISTICS嵌入式系统的核心特征功能要求严格嵌入式系统必须满足特定应用的功能需求,每个功能模块都经过精心设计,确保系统能够准确完成预定任务。可靠性要求高在工业控制、医疗设备等关键领域,嵌入式系统必须具备极高的可靠性,确保长时间稳定运行不出现故障。成本控制严格大规模生产的嵌入式产品对成本极为敏感,需要在满足功能的前提下尽可能降低硬件成本。体积限制严格许多嵌入式应用对体积有严格要求,如可穿戴设备、植入式医疗设备等,需要高度集成的解决方案。功耗要求严格对于电池供电设备,低功耗设计至关重要。STM32通过多种节能模式(睡眠模式、待机模式等)大幅降低能耗,延长设备续航时间。系统架构特点1控制程序存储在ROM中嵌入式处理器控制板将程序固化在只读存储器中2单程序实现控制逻辑大多数嵌入式系统由单个程序实现整个控制逻辑3部分包含操作系统复杂系统可能运行RTOS实时操作系统应用领域消费电子通信设备工业控制医疗器械汽车电子物联网ARMCORTEXPROCESSOR嵌入式ARMCortex处理器ARM公司AdvancedRISCMachinesARM公司是英国的芯片技术公司,是嵌入式微处理器领域的佼佼者。全球嵌入式处理器超过1000多种,体系结构有30多个系列,ARM占据重要地位。商业模式ARM公司自己研发微处理器内核架构,然后将这些架构的知识产权(IP)授权给各个芯片厂商。精简的CPU架构、高效的处理能力以及成功的商业模式让ARM获得巨大成功。ARM处理器市场地位1000+嵌入式处理器种类30+体系结构系列遍及工业控制、消费电子、通信系统网络系统、DSP、无线移动应用低功耗、低成本、高性能的领先者ARMCortex系列命名规则ARM公司在经典处理器ARM11以后的产品改用Cortex命名。ARMCortex系列处理器基于ARMv7架构,分为Cortex-A、Cortex-R和Cortex-M三类,分别针对不同应用场景优化设计。RISC技术特点精简指令集ReducedInstructionSetComputer,指令数量少、格式规整高效处理能力单周期执行指令,流水线技术提升效率低功耗设计优化的功耗管理,适合便携设备CORTEXSERIESARMCortex系列处理器分类ACortex-A高性能系列应用场合主要用于高性能(Advance)场合,针对日益增长的运行复杂操作系统的消费者娱乐和无线产品。支持系统LinuxWindowsCESymbian典型应用智能手机、平板电脑、数字电视、机顶盒RCortex-R实时系列应用场合主要用于实时(Realtime)要求高的场合,针对需要运行实时操作系统来控制应用的系统。实时特性确定性响应时间、低中断延迟、高可靠性,满足实时控制需求。典型应用汽车电子、网络设备、影像系统、工业控制MCortex-M微控制器系列应用场合主要用于微控制器单片机(MCU)领域,为对功耗和成本敏感、性能要求不断增加的嵌入式应用设计。核心优势超低功耗、低成本、高性能、易于开发,是嵌入式学习的最佳选择。典型应用微控制器系统、家电、工业控制、医疗器械、玩具、无线网络学习重点:本书以Cortex-M系列中的STM32F103为主讲对象,它是目前嵌入式开发市场的绝对主流,性价比极高,适合初学者入门。CORTEX-M3FEATURESARMCortex-M3处理器特点Cortex-M32006年推出ARM公司于2006年推出了采用ARMv7指令集的32位Cortex-M3微处理器核,专为对成本和功耗敏感但对性能要求高的应用而设计。性能对比速度提升快1/3功耗降低低3/4芯片面积更小相比ARM7处理器设计目标Cortex-M3处理器专门为那些对成本和功耗非常敏感,但同时对性能要求又相当高的应用而设计。低成本低功耗高性能小尺寸核心优势特性缩小的内核尺寸更小的芯片面积,降低成本出色的中断延迟12个时钟周期确定性响应集成的系统部件NVIC、SysTick、调试组件灵活的硬件配置可配置的中断优先级快速的系统调试JTAG/SWD调试接口简易的软件编程C语言友好,Thumb-2指令集设计理念凭借这些优势,ARMCortex-M3处理器成为广大嵌入式系统的理想解决方案,基于它的系统设计可以更快地投入市场。WHATISSTM32什么是STM32STM32基本定位STM32系列微处理器是由意法半导体(ST)公司以ARMCortex-M为内核开发生产的32位处理器,旨在为微控制单元(MCU)用户提供新的开发自由度。高性能72MHz主频,强大运算能力实时功能支持实时操作系统数字信号处理内置DSP指令集低功耗多种节能模式核心优势1集成度高内置丰富外设接口2易于开发完善的开发工具链3成本优势性价比极高4生态完善丰富的学习资源典型应用场景工业自动化控制智能家居系统汽车电子系统医疗设备控制学习提示STM32是目前市场上最流行的32位微控制器之一,掌握其开发技术对嵌入式工程师职业发展至关重要。STM32NAMINGCONVENTIONSTM32系列微处理器概述STM32型号命名规则STM32F103R6T6产品系列32位MCU产品类型通用型子系列增强型引脚数64脚闪存容量32KB封装LQFP温度-40~85℃产品系列STM32=32位微控制器产品类型F=通用类型子系列103=增强型温度范围6=-40℃~85℃型号示例解析STM32F103VCT6STM3232位微控制器系列F通用类型103增强型子系列V100个引脚C256KB闪存容量TLQFP封装6-40℃~85℃温度范围选型要点根据应用需求选择引脚数量根据程序大小选择闪存容量根据工作环境选择温度范围STM32F103SERIESSTM32F103系列详细介绍市场地位从性价比的角度来看,STM32F103微控制器目前是市场的绝对主流。虽然半导体公司仍不断有新型号推出,但在可预见的相当长一段时间内,只要对终端设备的运算能力需求没有本质性的提高,其主流地位仍将持续。本书选择本书以STM32F103R6芯片为主,并配合Proteus仿真软件对嵌入式项目应用进行讲解。核心配置主频72MHzARMCortex-M3内核闪存32KB高速嵌入式存储器SRAM6KB静态随机存储器电源2.0-3.6V宽电压供电范围外设接口ADC模数转换器2个12位ADCTIM定时器3个通用16位I2CI2C接口多达2个SPISPI接口多达2个USARTUSART接口3个串口USBUSB接口1个USB还包含1个PWM定时器和1个CAN接口,连接到两条APB总线性能特点总结高性能低功耗丰富外设易于开发GREEN&LOW-CARBONSTM32的绿色低碳应用绿色低碳理念STM32系列微处理器作为基于ARMCortex-M内核的32位微控制器,不仅以其高性能、丰富的外设和易于开发的特点赢得了广泛赞誉,更在绿色低碳领域展现出巨大的应用潜力。低功耗设计特点灵活的电源管理策略多种节能模式(睡眠/待机)在保证性能的同时大幅降低能耗应用领域智能家居智能照明、温控系统、安防监控工业自动化节能电机控制、智能传感器新能源汽车电池管理系统、能量回收新能源太阳能逆变器、风能控制节能模式详解睡眠模式(SleepMode)CPU停止运行,外设继续工作,功耗降低约50%,唤醒时间短待机模式(StandbyMode)大部分电路关闭,仅保留唤醒电路,功耗降至最低,适合长期待机应用停机模式(StopMode)所有时钟停止,保留SRAM和寄存器内容,功耗极低,唤醒后可快速恢复工程伦理意识在电路设计中选用低功耗元件,优化电源配置,体现节能减排的工程伦理意识,是每位嵌入式工程师应有的责任。03TASKIMPLEMENTATION任务实施搭建STM32开发环境DEVELOPMENTENVIRONMENT搭建STM32开发环境概述开发环境组成STM32开发环境是指用于STM32项目开发的软件和硬件工具。完整的开发环境包括软件开发平台和硬件开发工具两部分。软件开发平台集成开发环境IDE本书采用ARM公司的KeilMDK开发环境,提供完整的编译、调试工具链。硬件开发工具实物调试+实验仿真本书选用Proteus仿真软件进行硬件实验仿真,易上手、便于调试和验证。工具选择优势KeilMDK优势行业领先的ARMC/C++编译工具链完美支持Cortex-M系列器件包含世界各大品牌芯片支持功能强大的仿真调试器Proteus优势无需硬件即可验证程序丰富的激励源和虚拟仪器从原理图到PCB完整流程易上手,便于调试验证开发流程编写代码KeilMDK编译调试生成HEX文件仿真验证Proteus硬件调试下载运行KEILMDKKeilMDK简介KeilMDK-ARMMicrocontrollerDevelopmentKitKeilMDK-ARM是美国Keil软件公司(现已被ARM公司收购)出品的支持ARM微控制器的一款IDE(集成开发环境)。完整开发方案C编译器宏汇编器连接器库管理器仿真调试器μVisionIDE核心优势行业领先的编译工具链ARMC/C++编译器性能优异完美支持ARM系列器件Cortex-M/R、ARM7/9全系列丰富的芯片支持ST、Atmel、TI等众多品牌μVision集成开发环境μVision是KeilMDK的集成开发环境,将编译、汇编、连接、调试等功能组合在一起,提供统一的图形界面。代码编辑工程构建调试仿真Flash下载版本信息最新版本μVision5可从Keil官网下载最新版本本书采用版本KeilMDK5.30稳定可靠,适合教学使用下载地址/downloadINSTALLATIONSTEPSKeilMDK安装步骤安装流程1下载安装包访问Keil官网下载KeilMDK5.30安装包,根据操作系统选择对应版本(Windows)2运行安装程序双击安装程序,按照向导提示进行安装,选择安装路径(路径中不要出现中文字符)3完成安装安装完成后第一次运行KeilMDK,软件会自动弹出PackInstaller引导界面4手动打开PackInstaller也可单击标签栏中的依赖包安装标签,调出依赖包安装窗口注意事项安装路径选择的安装路径中不要出现中文字符,避免使用过程中出现字符编码格式错误的问题。许可证免费版有代码大小限制,教学使用足够。如需完整功能,需购买正版许可证。驱动安装安装过程中会自动安装必要的驱动程序,请保持网络连接畅通。安装成功标志桌面出现KeilμVision5图标开始菜单中有Keil程序组首次运行弹出PackInstallerONLINEINSTALLATION元件支持包在线安装在线联网安装方法在线联网安装的方法相对比较简单,MDK的PackInstaller中的元件区是将元件按照树形方式存放的。1选择生产厂家在PackInstaller左侧树形列表中,选择将要使用的MCU的生产厂家。本书使用的STM32F103系列MCU的生产厂家是STMicroelectronic。2选择MCU型号展开厂家节点,选择下一级找到要使用的MCU型号。本书使用STM32F1系列芯片作为学习对象。3选择版本并安装在右侧的元件支持包(DeviceFamilyPack,DFP)中选择需要安装的版本号,单击Install按钮即可实现依赖包的安装。本书配置目标芯片STM32F103R6ARMCortex-M3内核,64引脚,32KB闪存元件支持包版本Keil.STM32F1xx_DFP.2.3.0STM32F1系列完整支持包常见问题网络连接失败在线安装需要稳定的网络连接,如遇网络问题,建议使用离线安装方式。安装速度慢Pack文件较大,下载安装需要一定时间,请耐心等待。OFFLINEINSTALLATION元件支持包离线安装离线安装方法在线安装过程中,有时会因网络问题出现安装失败的情况。如果遇到这种情况,建议读者单独下载器件支持包,然后进行离线安装。1下载Pack文件首先需要用户自行下载MCU依赖包的离线安装文件。Keil官网有MDK支持的各种元件依赖包可以下载,在打开的页面中向下滚动选择STM32F1系列的依赖包文件,单击下载按钮下载。2启动KeiluVision5成功下载元件支持包后,启动KeiluVision5开发环境。3导入Pack文件在File菜单中选择Import子菜单,在弹出的文件选择对话框中选择前面下载的Pack文件,然后单击"打开"按钮即可实现MCU依赖包的离线安装。下载地址Keil官方Pack包下载页/dd2/pack/页面包含所有MDK支持的元件依赖包向下滚动找到STMicroelectronics选择STM32F1xx_DFP下载安装提示Pack文件格式.pack为Keil专用格式,双击也可安装版本选择建议选择最新稳定版本安装验证安装后在PackInstaller中查看PROTEUSSOFTWAREProteus软件简介Proteus英国Labcenter公司开发Proteus是电路分析与实物仿真软件,运行于Windows操作系统上。它不仅具有模拟电路、数字电路仿真功能,还能仿真单片机及外围器件。核心功能模拟电路仿真数字电路仿真单片机仿真外围器件仿真原理图设计PCB设计用户群体单片机爱好者学习单片机原理,验证设计方案教学工作者课堂教学演示,实验验证科技工作者单片机开发应用,原型验证完整开发流程原理图设计电路仿真PCB设计丰富资源激励源直流、正弦、脉冲等多种信号源虚拟仪器示波器、逻辑分析仪、计数器等元件库丰富的元器件库,持续更新分析图表多种仿真分析图表供选择PROTEUSVERSIONProteus版本要求与安装版本要求由于8.0以前版本的Proteus不支持STM32仿真,所以读者在选用Proteus版本时要高于8.0版本。8.0以下不支持STM328.0以上支持STM32本书采用版本Proteus8.9安装环境:Windows10安装步骤1下载安装程序从Labcenter官网或授权渠道下载Proteus8.9安装程序2运行安装向导双击安装程序,根据提示选择合适的安装路径进行安装3完成安装按照向导提示完成安装,启动Proteus软件重要提示安装路径在选择的安装路径中最好不要出现中文字符,避免使用过程中出现字符编码格式错误的问题。许可证Proteus是商业软件,需要购买许可证。教学可使用试用版或教育版。PROTEUSINTERFACEProteus编辑环境介绍启动Proteus启动方式选择"开始"→"程序"→"Proteus8Professional"→"Proteus8Professional",或在桌面上直接双击图标启动界面进入Proteus8Professional启动界面,单击图标即可进入电路图编辑界面界面组成菜单栏文件、编辑、视图等菜单主工具栏常用功能快捷按钮预览窗口显示整个电路图预览工具箱各种绘图和编辑工具原理图编辑窗口主要工作区域元件列表当前使用的元件编辑环境组成电路图编辑界面由以下部分组成:菜单栏、主工具栏、预览窗口、元器件选择按钮、工具箱、原理图编辑窗口、元件列表、仿真按钮、二维图形绘制按钮、方向工具栏、状态栏等。仿真按钮运行、暂停、停止仿真二维图形绘制绘制直线、方框、圆形等方向工具栏旋转、翻转元件状态栏显示当前操作状态学习提示本书中的STM32电路仿真实验均在Proteus原理图编辑窗口中实现,更加详细的使用方法和技巧在后续的项目任务中穿插介绍。TOOLBOXPART1Proteus工具箱详解(一)工具箱功能选择按钮用于即时编辑元件参数P元器件按钮单击"P"按钮,从库中添加元器件或在列表中选择连接点用于在原理图中放置连接节点Net网络标号相同网络标号的节点表示电气连通更多工具插入文本用于在原理图中插入文本信息总线用于在原理图中绘制总线绘制子电路用于绘制子电路块终端接口输入、输出、电源和地等接口虚拟仪器与信号源信号源直流电源、正弦信号、脉冲信号等虚拟仪器示波器、逻辑分析仪、计数器等电压探针显示探针所处网络线上的电压仿真图表多种仿真分析图表供选择TOOLBOXPART2Proteus工具箱详解(二)二维图形绘制按钮画线绘制直线方框绘制方框圆形绘制圆形弧形绘制弧形曲线绘制曲线字符/文字插入文字说明仿真控制按钮运行开始仿真单步运行单步执行暂停暂停仿真停止停止仿真其他工具符号放置符号坐标原点放置坐标原点使用技巧熟练掌握工具箱中的各种工具,可以大大提高电路设计的效率。建议多练习使用快捷键,提升操作速度。TEMPLATESETTINGSProteus模板设置模板设置Proteus编辑环境设置主要指模板选择、图纸设置和格点设置。绘制电路图首先要选择模板,模板控制电路图的外观信息。设置设计默认值菜单:Template→SetDesignColours设置纸张、格点、工作区颜色,设置仿真时正负极、逻辑高低电平颜色设置图标和曲线颜色菜单:Template→SetGraph&TraceColours设置图形轮廓线、底色、图形标题、图形文本等颜色设置结点样式菜单:Template→SetJunctionDotStyle通过此对话框设置节点的形状,分为三种类型:方形Square圆形Round菱形Diamond可设置的颜色项目纸张(Paper)格点(GridDot)工作区(WorkAreaBox)正极(Positive)负极(Negative)逻辑高电平(1)逻辑低电平(0)隐藏对象(HiddenObjects)SHEET&GRIDSETTINGSProteus图纸与格点设置图纸尺寸设置选择主菜单中的System→SetSheetSizes,将弹出图纸设置对话框,可进行图纸的设置。可用图纸规格A0(最大)A1A2A3A4(默认)系统提供美制图纸A0~A4,系统默认图纸为A4格点设置在设计电路原理图时,图纸上的格点有利于元件的排列和连线。格点显示设置菜单:View→ToggleGrid可设置编辑环境中格点是否显示格点间距设置菜单:View→Snap10th/Snap50th/Snap0.1in/Snap0.5in可设置各格点的间距(in为英寸,th为毫寸)格点间距选项Snap10th0.1英寸格点Snap50th0.02英寸格点Snap0.1in0.1英寸格点Snap0.5in0.5英寸格点HARDWAREDEBUGGER认识STM32硬件仿真器硬件仿真器作用尽管软件仿真具有无需搭建硬件电路就可以对程序进行验证的优点,但无法完全反映真实硬件的运行状况,因此还要通过硬件仿真来完成最终的设计。连接作用硬件仿真器连接计算机(开发工具)与开发目标板,将在计算机上编译完成的代码下载到目标板,并且在计算机上实现对代码的调试。单步执行全速运行查看资源设置断点仿真器连接示意图计算机KeilMDKUSB/JTAG仿真器J-Link/ST-LinkJTAG/SWD目标板STM32软件仿真vs硬件仿真软件仿真无需硬件电路便于程序验证无法反映真实硬件硬件仿真真实硬件运行完整功能验证需要硬件支持DEBUGGERTYPES1常用硬件仿真器类型(一)J-Link仿真器SEGGER公司出品产品介绍J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。支持IDEIAREWARMADSKEILWINARM支持芯片支持所有ARM7/ARM9/ARM11、CortexM0/M1/M3/M4、CortexA5/A8/A9等内核芯片的仿真与IAR、Keil等编译环境无缝连接,操作方便、连接方便、简单易学ULink仿真器Keil公司出品产品介绍ULink是Keil公司推出的仿真器,其升级版本为ULink2和ULinkPro。重要限制ULink仅支持在Keil-MDK-ARM环境下使用,并不支持其他开发环境。版本演进ULink(第一代)ULink2(第二代)ULinkPro(专业版)与KeilMDK深度集成,调试功能强大DEBUGGERTYPES2常用硬件仿真器类型(二)ST-Link仿真器ST公司专用产品介绍ST-Link是专门针对ST公司生产的STM8和STM32系列芯片推出的在线调试编程器。接口标准ST-Link/V2兼容JTAG/SWD标准接口,可与多种开发环境配合使用。价格优势ST-Link的销售价格相对其它国外大厂的在线仿真设备要实惠许多,基本成为国内嵌入式工程师入手必备的工具。性价比高,STM32开发首选CMSIS-DAP仿真器ARM官方开源产品介绍CMSIS-DAP仿真器是ARM官方推出的开源仿真器,支持所有的Cortex-A/R/M器件。接口支持支持JTAG/SWD接口,可与多种开发环境配合使用。核心优势没有版权限制价格相对便宜无须驱动,即插即用备受开发者喜爱,开源社区支持04TASKSUMMARY任务总结核心知识点与技能提升COREKNOWLEDGE核心知识点总结01STM32微控制器架构ARMCortex-M3内核性能特点高性能低功耗丰富外设典型应用工业控制智能家居02命名规则型号组成产品系列+类型+子系列+引脚+闪存+封装+温度识别能力通过型号参数快速识别关键信息示例STM32F103R6:64脚、32KB闪存03开发环境KeilMDK安装、Pack包配置Proteus界面、工具箱、模板设置硬件仿真器J-Link、ST-Link等类型SKILLIMPROVEMENT技能提升总结KeilMDK配置技能1元件支持包安装掌握在线安装和离线安装两种方式,能够独立完成Keil.STM32F1xx_DFP支持包的安装2工程模板创建掌握工程模板创建方法,能够配置正确的目标芯片型号和编译选项3编译调试能够编译工程并生成HEX文件,掌握基本的调试操作Proteus仿真技能1搭建最小系统电路在Proteus中搭建包含STM32F103R6、8MHz晶振、复位电路的最小系统2电源配置正确配置VDD和VSS电源,理解电源配置对仿真的重要性3仿真验证验证电源、时钟、复位电路设计逻辑的正确性能力提升路径理论学习环境配置实践操作项目开发GREEN&LOW-CARBON绿色低碳理念低功耗设计意识认识低功耗设计在嵌入式系统中的应用价值,如通过STM32节能模式(睡眠/待机)降低能耗。节能模式应用睡眠模式:CPU停止,外设工作待机模式:大部分电路关闭停机模式:所有时钟停止功耗优化策略关闭未使用外设降低系统时钟频率使用低功耗外设模式工程伦理意识在电路设计中选用低功耗元件,优化电源配置,体现节能减排的工程伦理意识。元件选型优先选用低功耗芯片选择高效率电源芯片使用低阻值电阻电源优化合理配置电源电压添加滤波电容优化电源走线绿色低碳应用领域智能家居工业自动化新能源汽车新能源05TRAINING&EVALUATION提升训练与评价巩固知识·提升技能·评价反馈KNOWLEDGEQ&A知识问答Q1命名规则问题问题STM32F103R6的闪存容量是多少?其命名规则中"R6"分别代表什么含义?提示回顾STM32型号命名规则R代表引脚数目6代表闪存容量Q2仿真问题排查问题若Proteus仿真时提示"NoPowerSupply",列举3种可能的配置错误及解决方法。提示检查电源Rail配置确认VDD/VSS连接检查电源网络标号PRACTICALOPERATION实践操作T1Proteus电路搭建任务内容在Proteus中搭建包含STM32F103R6、8MHz晶振、复位电路的最小系统,测量时钟信号稳定性。操作步骤1创建新工程,选择默认模板2添加STM32F103R6芯片3添加8MHz晶振电路4添加复位电路5配置电源并运行仿真T2Keil工程创建任务内容使用KeilMDK创建新工程,配置STM32F1xx_DFP支持包,生成HEX文件并加载至Proteus验证。操作步骤1创建新工程,选择STM32F103R62配置STM32F1xx_DFP支持包3编写简单的LED控制代码4编译生成HEX文件5加载至Proteus仿真验证EVALUATIONCRITERIA任务评价标准评价表知识掌握正确解释STM32架构、性能特点及命名规则15分开发环境配置独立完成KeilMDK和Proteus安装20分电路仿真能力成功搭建并仿真最小系统电路20分问题诊断分析并解决仿真中的常见问题15分更多评分项文档规范原理图标注清晰,代码注释完整10分节能设计意识选用低功耗元件,优化能耗10分创新实践扩展电路功能或优化代码10分总分满分100分THANKYOU谢谢观看从认识STM32开始,开启你的嵌入式工程师之旅掌握基础知识嵌入式系统、ARMCortex、STM32架构熟悉开发工具KeilMDK、Proteus仿真、硬件调试绿色设计理念低功耗设计、节能减排、工程伦理继续探索STM32嵌入式开发的精彩世界掌握固件库架构搭建开发环境创建工程模板建议课时:4学时难度等级:初级STM32EMBEDDEDTECHNOLOGYSTM32嵌入式技术及应用任务1-2创建STM32固件库的工程模板项目一LED控制设计与实现CONTENTS目录01任务目标明确学习目标与能力要求,掌握固件库基本概念和工程模板创建流程核心能力培养02知识储备学习STM32固件库架构、CMSIS标准、文件结构和启动文件选择理论基础03任务实施动手实践:准备工作、搭建工程、配置工程和编译验证实践操作04任务总结梳理核心知识点、技能提升要点和代码规范要求知识梳理05提升训练与评价通过知识问答、实践操作和任务评价,巩固所学知识,提升工程实践能力能力提升01CHAPTERONE任务目标明确学习目标与能力要求为后续嵌入式开发打下坚实基础掌握固件库概念搭建开发环境TASKOBJECTIVES任务目标目标一掌握固件库基本概念理解STM32固件库的基本概念及其种类,了解标准外设固件库、HAL库和LL库的特点和适用场景,为选择合适的开发方式提供依据。标准外设库HAL库LL库目标二学会创建工程模板学会新建基于STM32固件库的MDK工程模板,包括配置系统时钟、初始化外设和编写用户代码等步骤,掌握工程搭建的完整流程。系统时钟配置外设初始化目标三熟悉开发基本流程通过实践熟悉STM32项目开发的基本流程,包括准备工作、工程搭建、配置编译等环节,培养规范的工程开发习惯。准备工作编译调试学习成果预期完成本任务后,你将能够独立创建基于STM32标准外设库的Keil工程模板,理解固件库的架构和工作原理,为后续GPIO、定时器、中断等外设的学习和开发打下坚实基础。02CHAPTERTWO知识储备理论基础与核心概念深入理解STM32固件库架构CMSIS标准文件架构DEVELOPMENTCHALLENGES传统单片机开发的痛点传统开发方式传统的微控制器如8051系列,一般都是通过直接配置寄存器来控制芯片的工作方式,如使用定时器、中断等。配置时需要查看芯片的数据手册需要将寄存器的相应位配置成"0"或"1"工作既机械又麻烦,效率低下STM32的挑战STM32微控制器功能强大,片上集成的资源丰富,SFR(特殊功能寄存器)非常多。若采用直接配置寄存器的方式进行编程,将会花费大量时间来查阅数据手册,开发效率极低。1查阅手册耗时需要反复查阅数据手册,理解每个寄存器的功能和位定义2配置过程繁琐需要逐个配置寄存器的每一位,容易出错且难以维护3开发效率低下大量时间花在底层配置,无法专注于应用逻辑开发FIRMWARELIBRARYSTM32库函数的诞生解决方案的诞生为了帮助学习者快速上手,ST公司找了顶级的工程师创建了STM32库函数。库函数就是架设在寄存器与用户驱动层之间的代码。向下直接处理寄存器的相关配置向上提供配置寄存器的函数接口核心优势让开发者脱离最底层的寄存器操作,大幅提升开发效率,将更多精力投入到应用逻辑的实现上。库函数架构层次用户应用层ApplicationCode库函数层FirmwareLibrary寄存器层HardwareRegistersCMSISSTANDARDCMSIS标准概述为什么需要CMSIS?STM32采用的Cortex-M3内核是ARM公司提出的,不同芯片的区别主要是核外的片上外设的差异。这些差异会导致软件在同内核、不同外设的芯片上移植困难。解决方案为了解决不同芯片厂商生产的Cortex内核软件的兼容性问题,ARM公司与芯片生产厂商建立了CMSIS标准。CMSIS标准定义CortexMicrocontrollerSoftwareInterfaceStandardARMCortex微控制器软件接口标准软件抽象层位于硬件层与操作系统或用户层之间硬件无关性提供与芯片生产厂商无关的硬件抽象层软件可移植为外设、RTOS提供简单的处理器软件接口CMSISARCHITECTURECMSIS标准架构图屏蔽硬件差异CMSIS层位于硬件层与用户层之间,屏蔽了不同芯片厂商的硬件差异,对软件移植有极大的好处。软件可移植性为外设和实时操作系统提供简单的处理器软件接口,实现跨平台软件移植。STM32固件库STM32固件库就是按照CMSIS标准建立的,符合ARM公司的标准化要求。CMSISCORELAYERSCMSIS核心层详解内核函数层CoreFunctionLayer核心文件core_cm3.h/core_cm3.c提供方主要由ARM公司提供功能说明包含用于访问内核寄存器的名称、地址定义设备外设访问层DevicePeripheralAccessLayer核心文件stm32f10x.h/system_stm32f10x.c提供方主要由芯片生产厂商提供功能说明提供核外的片上外设的地址和中断定义CMSIS核心层总结CMSIS标准中最主要的是CMSIS核心层,包括内核函数层和设备外设访问层两部分,分别由ARM公司和芯片生产厂商提供,共同构成了STM32固件库的基础架构。FIRMWARELIBRARYTYPESSTM32固件库的种类标准外设固件库StandardPeripheralsFirmwareLibrary推出时间最早生态最为完整更新到V3.5后停止初学者的首选HAL库HardwareAbstractionLibrary伴随STM32CubeMX图形化配置生成代码增加程序设计框架快速开发首选LL库Low-LevelLibrary最新推出的库提供更底层访问性能优化更好高性能场景第三方固件库官方固件库都是基于C语言开发的,不具备面向对象的特点。在GitHub等平台上出现了基于C++的固件库,libstm32pp就是其中一种。STANDARDPERIPHERALSLIBRARY标准外设固件库特点历史与生态标准外设固件库是推出时间最早、生态最为完整的库,主要是将一些基本的寄存器操作封装成了C函数。版本说明ST公司在其更新到3.5版本(STM32F10x_StdPeriph_Lib_V3.5.0)后停止了更新。核心优势结构简单,易于理解未干预开发者的设计思路仍有大量开发人员在使用初学者的首选对于初学者来说,标准外设固件库是最佳的学习选择,因为它能够帮助你更好地理解底层寄存器的工作原理。通过学习标准库,你可以深入了解STM32的硬件架构,为后续学习HAL库和LL库打下坚实基础。本书将基于标准外设固件库进行讲解,帮助读者建立扎实的嵌入式开发基础。HAL&LLLIBRARYHAL库和LL库特点HAL库HardwareAbstractionLibrarySTM32CubeMXHAL库和LL库是伴随着STM32CubeMX软件共同出现的图形化配置使用该工具,操作鼠标即可完成配置,自动生成基于HAL库或LL库的代码设计框架HAL库不是一个纯粹的SFR操作接口,还增加了一些程序设计框架LL库Low-LevelLibrary最新推出LL库是最新推出的底层库,提供更接近寄存器的操作接口高性能相比HAL库,LL库的执行效率更高,代码体积更小灵活控制提供更精细的硬件控制,适合对性能要求高的应用场景使用建议有经验的开发人员,经过一段时间的熟悉与使用,利用STM32CubeMX的自动生成代码功能确实可以在一定程度上提高开发效率。THIRD-PARTYLIBRARY第三方固件库官方库的局限官方固件库都是基于C语言开发的,不具备面向对象的特点。对于习惯使用面向对象编程的开发者来说,这可能是一个不便之处。第三方库的兴起在GitHub等平台上出现了基于C++的固件库,libstm32pp就是其中一种代表。第三方库的局限性使用者较少相比官方库,第三方库的使用者要少得多团队负担在团队中使用时,增加了团队其他成员的负担资源较少相关资源也比较少,不利于解决学习中遇到的问题本书选择在初学阶段,为了将注意力集中到STM32微控制器开发本身,本书将基于标准外设固件库进行讲解,对片上资源熟悉以后,读者可以过渡到HAL库、LL库。LIBRARYSELECTIONGUIDE固件库选择建议固件库类型主要特点适用场景推荐指数标准外设库结构简单,易于理解未干预设计思路生态完整初学者学习理解底层原理教学培训HAL库图形化配置自动生成代码开发效率高快速开发复杂项目团队协作LL库执行效率高代码体积小精细控制性能要求高资源受限底层优化初学者建议建议初学者先掌握标准库,理解底层原理后,再过渡到HAL库和LL库。学习路径标准库→HAL库→LL库,循序渐进,逐步深入。FILEARCHITECTURESTM32固件库文件架构STD库文件基本架构架构说明开发者使用标准固件库时,需关注所使用的外设是在哪个总线上、具体寄存器的配置等底层信息。标准固件库的文件基本架构并不复杂,较好展示了各层以及具体文件间的联系。分层优势清晰的层次结构,便于理解和维护各层职责明确,降低耦合度便于代码复用和移植后续内容接下来将详细介绍各核心文件的功能和作用。COREFILES(1/3)核心文件功能说明(一)内核访问层文件core_cm3.c/core_cm3.h文件类型分别是内核访问层的源文件和头文件核心功能提供进入M3内核的接口提供方由ARM公司提供的CMSIS核心文件重要提示对所有M3内核的芯片都一样,永远都不需要修改微控制器专用头文件stm32f10x.h重要性该文件相当重要,是开发的基础包含内容•STM32F10x全系列所有外设寄存器的定义•寄存器的基地址和布局•位定义、中断向量表•存储空间的地址映射等使用提示编程时需要经常查阅此文件,了解寄存器的定义和配置COREFILES(2/3)核心文件功能说明(二)系统时钟设置文件system_stm32f10x.c/.h核心功能主要设置系统和总线时钟相关的函数关键函数SystemInit()-系统启动时自动调用自动配置用来设置系统的整个时钟系统,不需要用户配置时钟,程序就能运行编译器启动代码startup_stm32f10x_Xd.s核心功能•进行堆栈等的初始化•中断向量表以及中断函数定义•引导程序进入main函数文件位置在STM32F10x子目录下的startup子目录中文件数量在\startup\arm目录下,可以看到8个以startup开头的".s"文件COREFILES(3/3)核心文件功能说明(三)固件库配置文件stm32f10x_conf.h核心功能通过#include宏指令配置项目使用的外设驱动库使用技巧可以注释掉不用的外设头文件,只选择需要的外设中断函数文件stm32f10x_it.c/.h核心功能包含STM32的中断函数重要说明只写了ARM内核的几个异常中断,其他需用户编写外设驱动函数文件stm32f10x_ppp.c/.h核心功能包括相关外设的初始化配置和功能应用函数重要性这是进行编程功能实现的重要组成部分文件关系总结这些文件共同构成了STM32固件库的完整架构,从底层的内核访问到上层的应用开发,每个文件都有其特定的功能和作用。理解这些文件的功能,是掌握STM32开发的关键。STARTUPFILESELECTION启动文件选择指南启动文件容量标识FLASH容量适用系列startup_stm32f10x_ld.sld:low-density16-32KSTM32F101xxSTM32F102xxSTM32F103xx(基本型)startup_stm32f10x_md.smd:medium-density64-128Kstartup_stm32f10x_hd.shd:high-density256-512Kstartup_stm32f10x_xl.sxl:extralarge512-1024Kstartup_stm32f10x_cl.scl:connectivityline-STM32F105xxSTM32F107xx(互联型)startup_stm32f10x_ld_vl.svl:valueline16-32KSTM32F100xx(超值型)startup_stm32f10x_md_vl.s64-128Kstartup_stm32f10x_hd_vl.s256-512K本书选择本书选用的STM32F103R6的FLASH是32K,属于基本型的小容量产品,启动文件选择startup_stm32f10x_ld.s。SYSTEMCLOCKCONFIGURATION系统时钟配置详解SystemInit()函数此文件主要设置系统及总线时钟相关的函数。该文件中定义了初始化函数SystemInit(),这个函数在系统启动时都会被调用。系统主频配置通过注释不同的"#define"宏定义,可将芯片配置为不同的系统主频:超值型芯片24MHz非超值型芯片72MHz时钟配置代码示例//系统主频配置#defineSYSCLK_FREQ_HSE8000000#defineSYSCLK_FREQ_24MHz24000000#defineSYSCLK_FREQ_36MHz36000000#defineSYSCLK_FREQ_48MHz48000000#defineSYSCLK_FREQ_56MHz56000000#defineSYSCLK_FREQ_72MHz72000000//取消注释需要的频率//程序启动时自动配置重要提示编程时应尽量避免对STM32标准外设库文件夹中的文件进行任何的修改,导致系统主频不对。CONFIGURATIONFILE固件库配置文件应用stm32f10x_conf.h在这个文件中用"#include"宏指令配置项目所要用到的外设驱动函数库。使用技巧项目使用的外设驱动库文件必须被包含,未使用的外设驱动库头文件也可以被包含,并不影响最终的编译和运行结果,只是会增加编译时间。优化建议建议只包含需要的外设头文件,注释掉不用的头文件,以减少编译时间和提高代码可读性。点亮LED灯项目配置示例//stm32f10x_conf.h配置文件//标准外设库头文件配置#include"stm32f10x_gpio.h"//GPIO外设-必需#include"stm32f10x_rcc.h"//RCC时钟-必需//以下头文件在本项目中不需要,已注释//#include"stm32f10x_adc.h"//#include"stm32f10x_can.h"//#include"stm32f10x_dma.h"//#include"stm32f10x_exti.h"//#include"stm32f10x_i2c.h"//#include"stm32f10x_spi.h"//#include"stm32f10x_tim.h"//#include"stm32f10x_usart.h"必需包含stm32f10x_gpio.hstm32f10x_rcc.h已注释其他外设头文件减少编译时间INTERRUPTHANDLERFILES中断函数文件说明外设中断函数文件stm32f10x_it.c/.h包含内容包含了STM32的中断函数重要说明源文件和头文件中并没有把所有的中断入口函数都写出来,而只写了ARM内核的几个异常中断用户编写其它中断函数需要用户自己编写中断服务函数名称STM32标准外设库中断服务函数的名称已定义好,可以在相应的汇编语言启动代码中查询到。文件位置灵活在实际编程过程中,也经常会将中断服务函数的源代码放在其它的文件中,并非强制要求放在stm32f10x_it.c文件中。启动代码中的中断定义//startup_stm32f10x_ld.sDCDTIM2_IRQHandler;TIM2DCDTIM3_IRQHandler;TIM3DCDTIM4_IRQHandler;TIM4DCDI2C1_EV_IRQHandler;I2C1EventDCDSPI1_IRQHandler;SPI1DCDUSART1_IRQHandler;USART103CHAPTERTHREE任务实施动手实践与工程搭建从零开始创建STM32工程模板准备工作搭建工程PREPARATION准备工作1下载固件库从ST官网下载STM32F10x_StdPeriph_Lib_V3.5.0固件库。下载地址:ST官方网站2安装开发环境下载并安装好KeiluVisionV5.30(MDK5)开发环境。推荐版本:MDK5.30或更高固件库文件夹结构Libraries库文件重要包含STM32的系统源文件和头文件Project例程和模板包含STM32F10x的例程和工程模板_htmrescSTLogo里面是ST的Logo图片,基本无用Utilities实用程序里面有一些实用程序,也没多大用FOLDERSTRUCTURE创建工程文件夹结构工程文件夹结构STM32_Project工程根目录CMSISLibrariesStartupUserProject存放项目文件CMSIS从固件库中的CMSIS文件夹直接复制过来,包含内核相关文件Libraries从固件库中的Libraries文件夹复制过来,只保留inc和src文件夹Startup放置启动代码,根据所用芯片的容量选择合适的启动文件User用户应用程序,包括main.c、stm32f10x_conf.h、stm32f10x_it.c等Project存放项目文件,如STM32_Template.uvproj,以及输出信息CREATEKEILPROJECT新建Keil工程步骤1新建项目打开Keil5软件,在Project菜单下选择NewuVisionProject新建项目。2命名与保存键入新的项目名称如STM32_Template,保存到刚才的Project文件夹下面。3选择芯片选择芯片类型,根据实际情况选择,选STM32F103R6,点击OK。4跳过组件管理MDK会弹出"ManageRun-TimeEnvironment"对话框,这是MDK5新增的功能。本书创建工程的方式是添加ST官方文件,直接点击OK即可。操作流程图Project→NewuVisionProject输入项目名:STM32_Template选择芯片:STM32F103R6点击OK跳过组件管理ADDFILESTOPROJECT添加文件到工程打开管理窗口点击项目组合图标,弹出"组件、环境、书籍"窗口。添加文件组可根据实际需要添加相应的文件组,包括:CMSIS、Libraries、Startup、User等。完成添加添加完成后,工程Project区会显示文件树状结构。Project文件结构CMSIScore_cm3.c、system_stm32f10x.c、stm32f10x.hLibrariesstm32f10x_gpio.c、stm32f10x_rcc.c、...Startupstartup_stm32f10x_ld.sUsermain.c、stm32f10x_conf.h、stm32f10x_it.c根据实际需要添加相应的文件,确保工程结构清晰PROJECTCONFIGURATION(1/2)工程配置(一)1Target设置点击图标进入TargetOption界面,设置晶振为实际所用晶振的频率。时钟晶振频率8.00MHz2Output设置选择Output项进行设置,配置输出文件的生成选项。3Listing设置点击Listing选项,配置Listing文件的所在路径为Project下的Listing文件夹。配置步骤总结1设置目标选项(晶振频率8MHz)2选择Output项进行设置3配置Listing文件路径接下来进行C/C++选项的配置(见下一页)PROJECTCONFIGURATION(2/2)工程配置(二)C/C++选项在"C/C++"选项中进行关键配置。预定义宏加入预定义的宏:USE_STDPERIPH_DRIVERSTM32F10X_LD头文件路径在"IncludePaths"框中填入头文件所在目录。宏定义说明USE_STDPERIPH_DRIVERV3.5版的库函数在配置和选择外设时,是通过宏定义来选择的,所以需要配置一个全局的宏定义变量,否则工程编译会出错。STM32F10X_LD根据芯片容量选择不同的宏定义:小容量LD中容量MD大容量HDCOMPILE&VERIFY编译与验证1保存配置单击OK按钮,退出"OptionsforTarget'Target1'"对话框。2编译工程单击工具栏的Rebuild按钮,对工程进行编译。3检查错误若编译发生错误,要进行分析检查,直到编译正确为止。编译成功标志0Error(s),0Warning(s)编译成功,无错误无警告常见编译错误及解决方案UndefinedsymbolSystemInit检查system_stm32f10x.c是否添加到工程Cannotopensourceinputfile检查头文件路径配置是否正确USE_STDPERIPH_DRIVERundefined检查C/C++选项中的宏定义配置04CHAPTERFOUR任务总结知识梳理与能力提升巩固所学,为后续学习做准备核心知识点技能提升KEYKNOWLEDGEPOINTS核心知识点总结知识点一固件库差异理解理解标准外设库(STD)、HAL库和LL库的差异,掌握它们各自的特点和适用场景。CMSIS标准架构掌握CMSIS标准的层级架构,包括内核函数层和设备外设访问层。知识点二工程模板文件结构熟悉工程模板的文件结构,包括启动文件、系统时钟配置、外设驱动文件等。启动文件选择掌握如何根据芯片容量选择合适的启动文件(ld/md/hd/xl等)。CMSIS架构内核层+外设层三种固件库STD/HAL/LL文件架构启动+系统+外设SKILLS&STANDARDS技能提升与代码规范技能提升创建工程模板创建基于标准外设库的Keil工程模板系统时钟初始化完成系统时钟初始化(如72MHz主频配置)工程配置优化通过宏定义优化工程配置,减少冗余编译时间代码规范使用stm32f10x_conf.h精简外设头文件,提升工程可维护性。工程配置最佳实践宏定义配置正确配置USE_STDPERIPH_DRIVER和芯片容量宏定义头文件路径确保所有头文件路径正确配置,避免编译错误配置文件优化注释掉不用的外设头文件,减少编译时间启动文件选择根据芯片FLASH容量选择正确的启动文件05CHAPTERFIVE提升训练与评价巩固知识·提升技能通过实践检验学习成果知识问答实践操作KNOWLEDGEQ&A知识问答Q1问题一解释startup_stm32f10x_ld.s的作用,如何根据芯片容量选择启动文件?提示考虑启动文件的功能、容量标识(ld/md/hd/xl)的含义Q2问题二若编译时报错"UndefinedsymbolSystemInit",列举3种可能原因及解决方案。提示考虑文件添加、宏定义配置、头文件路径等问题答题要求请结合本任务所学知识,详细回答上述问题,加深对固件库和工程配置的理解。PRACTICALEXERCISES实践操作1实践任务一基于已有工程模板,仅保留GPIO和RCC外设头文件,通过stm32f10x_conf.h注释其他不相关外设,编译验证工程是否通过。操作步骤1.打开stm32f10x_conf.h文件2.保留stm32f10x_gpio.h和stm32f10x_rcc.h3.注释掉其他所有外设头文件4.重新编译工程,验证是否通过2实践任务二在main.c中添加使能GPIOA时钟的代码(无需初始化引脚),通过编译和Proteus仿真观察是否无报错。参考代码//使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);实践要求请按照上述任务要求完成实践操作,通过实际操作加深对工程配置和固件库使用的理解。EVALUATIONCRITERIA任务评价标准评分项评分标准分值得分架构理解正确解释CMSIS标准层级及固件库分类15工程配置能力独立创建工程模板,正确配置系统时钟及外设驱动文件25代码优化通过宏定义和配置文件精简代码,减少编译时间15调试能力解决编译错误(如启动文件选择错误、宏定义缺失)15文档规范工程文件结构清晰,代码注释完整10节能设计在代码逻辑中减少冗余操作(如关闭未使用外设时钟)以降低能耗10扩展实践尝试使用HAL库完成工程配置,并分析其优劣势10总分100自我评价请根据自己在本次任务中的实际表现进行评价,找出不足之处,为后续学习制定改进计划。谢谢观看掌握固件库架构·熟练工程搭建·开启STM32开发之旅掌握固件库架构CMSIS标准、文件结构、启动文件选择熟练工程搭建文件夹结构、Keil配置、编译验证开启开发之旅为后续GPIO、定时器等学习打下基础掌握GPIO控制·Proteus仿真设计·Keil工程开发GPIO控制基础电路设计仿真代码开发调试《STM32嵌入式技术及应用》教材配套课件职业院校电子信息类专业教材STM32EMBEDDEDTECHNOLOGYSTM32嵌入式技术及应用任务1-3点亮一个LED灯项目一LED控制设计与实现CONTENTS目录01任务目标明确学习目标与能力要求,掌握GPIO控制基本方法,理解LED控制的基本原理核心能力培养02知识储备GPIO工作原理、电路设计基础、LED驱动原理、库函数应用方法理论基础03任务实施Proteus电路设计、Keil工程开发、软硬件联调、仿真验证实践操作04任务总结核心知识点梳理、技能提升要点、绿色设计理念、代码规范知识梳理05提升训练与评价知识问答巩固理论基础、实践操作提升动手能力、任务评价检验学习成果能力提升CHAPTERONE01任务目标明确学习目标与能力要求掌握GPIO控制基础电路设计能力代码开发能力联调验证能力TASKOBJECTIVES任务目标目标一掌握电路设计掌握使用Proteus设计LED灯控制电路的方法,包括元器件的选择、电路图的绘制和参数的配置,理解电路工作原理。元器件选择电路图绘制参数配置目标二学会工程开发学会使用KeilμVision5开发控制LED灯的工程,包括移植工程模板、编写控制代码和编译调试等步骤。工程模板移植控制代码编写编译调试目标三理解GPIO控制通过软硬件联调实现LED灯的点亮,加深对STM32GPIO控制的理解,掌握GPIO配置流程和电平控制方法。GPIO配置流程电平控制方法软硬件联调绿色设计理念在点亮LED灯操作中,同样要注重节能与环保。例如,可以选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论