将核心板上的运行状态指示灯点亮
任务分析
灯如何点亮
如何看开发板原理图
开发板上的灯硬件组成
原理图
原理图(Schematic Diagram),也称为电路图或电气图,是一种图形表示方法,用于展示电子系统或电路的工作原理和组成部分之间的连接方式。它通常包括各种符号来代表电子元件(如电阻器、电容器、晶体管等)以及连线来表示它们之间的电气连接。
三极管
三极管,全称半导体三极管,也称为双极型晶体管(BJT, Bipolar Junction Transistor),是一种控制电流的半导体器件。它的主要功能是把微弱的信号放大成幅度值较大的电信号,也可用作无触点开关。三极管是电子电路中的核心元件之一。
NPN型:当B(基极)点电压大于E(发射极)时,C(集电极)和E(发射极)导通。
PNP型:当B(基极)点电压小于E(发射极)时,C(集电极)和E(发射极)导通。
正向导通电压通常在0.7V左右(硅基三极管的典型值)。
开发板上的灯如何点亮
- Q1 (MMBT5551): 这是一个NPN型三极管,用作开关。
- R8 (10kΩ): 这个电阻连接在基极和地之间,确保在没有输入信号时三极管的基极电压为0V,从而保持三极管关闭。
- R9 (560Ω): 这个电阻连接在基极和PC13之间,作为限流电阻,控制流入基极的电流,防止过大的电流损坏三极管。
- PC13: 这是一个控制信号输入端。当PC13输出高电平(相对于地)时,电流通过R9流入三极管的基极,使三极管导通。
- D1 (LED): 这是一个发光二极管,当三极管导通时,电流可以通过LED,使其发光。
- R5 (1kΩ): 这个电阻连接在LED和VCC-3V3之间,作为限流电阻,保护LED不被过大的电流损坏。
- VCC-3V3: 这是电路的电源,提供3.3V的电压。
工作原理:
- 当PC13为低电平时,三极管Q1的基极电压为0V,三极管关闭,LED不亮。
- 当PC13为高电平时,电流通过R9流入三极管Q1的基极,使三极管导通,电流从VCC-3V3流经R5和LED到地,LED亮起。
任务实现
STM32CubeMX
STM32CubeMX是一款图形化工具,可以非常轻松地配置STM32微控制器和微处理器,以及为Arm Cortex-M内核生成相应的初始化C代码,或为Arm Cortex-A内核生成部分Linux设备树。
对于微处理器,允许配置整个系统的GPIO和时钟设置,并以交互方式将外设分配给Arm Cortex-M或Cortex-A世界。特定的实用程序,如DDR配置和调优,使STM32微处理器易于上手。对于 Cortex-M 内核,配置包括与微控制器完全相同的附加步骤。
对于微控制器和微处理器 Arm Cortex-M,第二步包括配置每个必需的嵌入式软件,这要归功于引脚冲突求解器、时钟树设置助手、功耗计算器以及配置外设(如 GPIO 或 USART)和中间件堆栈(如 USB 或 TCP/IP)的实用程序。
借助增强的STM32Cube扩展包,可以扩展默认软件和中间件堆栈。STMicrolectronics 或 STMicrolectronics 的合作伙伴软件包可直接从 STM32CubeMX 中的专用软件包管理器下载,而其他软件包可从本地驱动器安装。
此外,STM32CubeMX交付中的独特实用程序STM32PackCreator可帮助开发人员构建自己的增强型STM32Cube扩展包。
(图形化配置MCU的硬件接口(GPIO,UART等))
STM32CubeMX软件使用(超详细)_um1718:stm32cubemx软件使用参考手册-CSDN博客
TrustZone是一种安全技术,允许在处理器内部分离安全和非安全环境。
- 不激活TrustZone:如果您选择不激活TrustZone,您的项目将在单一执行环境中运行,这通常安全性较低。这可能适用于不需要高安全级别的应用程序,或者在管理安全和非安全上下文的开销不合理的情况下。
- 激活TrustZone:激活TrustZone允许您在正常世界旁边创建一个安全环境(TEE)。这对于需要保护敏感数据或操作免受非安全环境中潜在恶意软件侵害的应用程序非常有用。TrustZone对于支付处理、安全启动和其他安全关键功能等领域的应用程序尤其重要。
如果您不确定选择哪个选项,请考虑以下因素:
- 安全需求:您的项目是否处理敏感数据或需要安全执行。
- 性能开销:您是否愿意接受与在安全和非安全世界之间切换上下文相关的潜在性能开销。
- 开发复杂性:您是否准备好处理开发安全和非安全环境的额外复杂性。
外设的配置,项目搭建完成(debug,clock,HAL)
D1_PC13
生成代码
这个警告信息来自于您使用的微控制器或开发环境,它提示您为了达到最大性能,需要启用指令缓存(lCACHE)。以下是警告信息的中文解释和建议:
警告信息:
- 为了达到最大性能,必须启用指令缓存(lCACHE)。您可以在引脚配置(Pinout)标签下的ICACHE中启用lCACHE。
选项:
- 是:继续生成代码。
- 否:不生成代码。
建议: 如果您希望您的应用程序运行在最佳性能,建议您启用lCACHE。指令缓存可以减少从闪存中读取指令的时间,从而提高处理器的执行速度。如果您选择不启用lCACHE,可能会影响程序的性能,尤其是在执行大量指令时。
如果您决定启用lCACHE,可以按照警告信息中的指示,在开发环境的引脚配置界面找到ICACHE设置,并启用它。启用后,您可以安全地选择“是”来生成代码。如果您不想启用lCACHE或者有其他考虑,可以选择“否”来停止代码生成。
keil
STM32CubeMX生成的代码分析
闪烁
/* USER CODE BEGIN 3 */HAL_GPIO_WritePin(Status_GPIO_Port,Status_Pin,GPIO_PIN_SET);HAL_Delay(1000);HAL_GPIO_WritePin(Status_GPIO_Port,Status_Pin,GPIO_PIN_RESET);HAL_Delay(1000); /* USER CODE END 3 */