新闻详情

新闻详情

首页 / 资讯中心 / 详情

STM32实验二——标准外设库(SPL)与Keil逻辑分析仪波形观察

发布时间:2026/11/15 5:54:42来源:尧图网络
STM32实验二——标准外设库(SPL)与Keil逻辑分析仪波形观察
前言在完成了实验一纯寄存器方式点亮流水灯之后实验二要求我们改用标准外设库SPL并使用 Keil MDK 的软件仿真逻辑分析仪 来观察 GPIO 端口的时序波形验证软件循环延时的准确周期。本文将详细记录标准库工程的搭建过程、代码实现以及在 Keil 中抓取波形的曲折经历和最终解决方案。一、 实验目的掌握 STM32 标准外设库Standard Peripheral Library, SPL的工程搭建方法。理解 SPL 中 RCC、GPIO 相关函数的调用逻辑。学会使用 Keil MDK 的软件仿真Simulator模式并使用逻辑分析仪Logic Analyzer观察引脚的时序波形。分析软件循环延时函数的准确性计算 LED 闪烁的实际周期。二、 实验环境与硬件硬件STM32F103C8T6 最小系统板、面包板、红绿LED灯、限流电阻、杜邦线。软件Keil MDK V5.06、STM32F10x_StdPeriph_Lib_V3.5.0 标准库。三、 标准外设库SPL工程搭建详细过程文件与目录准备在工程根目录下新建 Libraries 文件夹复制官方标准外设库的源码。在 Keil 中建立四个组Startup、CMSIS、Library、User。依次向对应组内添加文件Startupstartup_stm32f10x_md.sCMSIScore_cm3.c、system_stm32f10x.cLibrarystm32f10x_rcc.c、stm32f10x_gpio.cUser新建 main.c魔术棒配置关键在 C/C 选项卡的 Define 框里填写USE_STDPERIPH_DRIVER。在 Include Paths 中添加三个头文件路径StdPeriph_Driver\inc、CMSIS\CM3\DeviceSupport\ST\STM32F10x、CMSIS\CM3\CoreSupport。踩坑记录编译时若提示找不到 stm32f10x_conf.h需手动创建该文件内容通常包含 #define assert_param(expr) ((void)0) 以及必要外设的引用。四、 核心代码SPL 方式c #include stm32f10x.h // 粗略软件延时函数 void Delay_ms(uint32_t ms) { for(uint32_t i 0; i ms; i) for(uint32_t j 0; j 8000; j); } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; // 1. 开启 GPIOA, GPIOB, GPIOC 时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); // 2. 配置 PA0、PB0、PC13 为推挽输出 GPIO_InitStructure.GPIO_Pin GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOA, GPIO_InitStructure); GPIO_Init(GPIOB, GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin GPIO_Pin_13; GPIO_Init(GPIOC, GPIO_InitStructure); // 初始熄灭状态 GPIO_ResetBits(GPIOA, GPIO_Pin_0); GPIO_ResetBits(GPIOB, GPIO_Pin_0); GPIO_SetBits(GPIOC, GPIO_Pin_13); // 板载PC13高电平熄灭 while(1) { GPIO_SetBits(GPIOA, GPIO_Pin_0); Delay_ms(1000); GPIO_ResetBits(GPIOA, GPIO_Pin_0); GPIO_SetBits(GPIOB, GPIO_Pin_0); Delay_ms(1000); GPIO_ResetBits(GPIOB, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_13); Delay_ms(1000); GPIO_SetBits(GPIOC, GPIO_Pin_13); } }延时周期分析在默认 72MHz 主频下内层循环 j 8000 大约耗时 1 毫秒因此 Delay_ms(1000) 约为 1 秒。LED 亮灭间隔约为 1 秒整个闪烁周期为 2 秒占空比 50%。五、 逻辑分析仪波形观察与“踩坑”记录踩坑在 Keil 中使用 Use Simulator 纯软件仿真时因标准库代码会直接访问物理寄存器如 0x40021000 时钟寄存器仿真器没有外设模型直接报错 access violation导致逻辑分析仪无法抓取信号。解决方案在仿真启动前在 Command 窗口输入 map 0x40000000, 0x400FFFFF read write 解除地址访问限制。为了直观展示 GPIO 的时序逻辑我们定义了 volatile uint32_t debug_PA0、debug_PB0、debug_PC13 三个变量在主循环中同步 GPIO 的输出状态然后用逻辑分析仪直接观察这三个变量。波形分析通过逻辑分析仪波形可知PA0、PB0、PC13 对应输出为周期 2 秒的方波高电平 1 秒低电平 1 秒时序状态正确验证了软件循环延时的可靠性。六、 实验总结本次实验成功从寄存器操作过渡到了 SPL 标准库开发虽然 Keil 纯软件仿真在 STM32F1 上存在兼容性问题但通过 map 映射和虚拟变量同步我们依然完美验证了 GPIO 的时序逻辑加深了对底层寄存器与库函数对应关系的理解。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉