新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/28 20:21:43来源:尧图网络
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

相关资讯

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

较早相关资讯

最新相关资讯

《P14079 [GESP202509 八级] 最短距离》 2026/9/28 21:10:41

《P14079 [GESP202509 八级] 最短距离》

题目背景 对应的选择、判断题&#xff1a;试题 - GESP 202509 C 八级 - 洛谷有题 题目描述 给定正整数 p,q 以及常数 N1018。现在构建一张包含 N 个结点的带权无向图&#xff0c;结点依次以 1,2,…,N 编号。对于任意满足 1≤u<v≤N 的 u,v&#xff0c;向图中加入一条连接…

阅读更多 →
企业级AI Coding实战:如何让AI真正读懂你的系统? 2026/9/28 21:10:41

企业级AI Coding实战:如何让AI真正读懂你的系统?

存量系统里&#xff0c;瓶颈到底在哪 普通互联网项目用 AI 写代码很简单&#xff1a;需求进来&#xff0c;写个 Prompt&#xff0c;AI 分析、写代码、跑测试&#xff0c;基本就完事了。因为项目没什么历史包袱&#xff0c;技术栈公开&#xff0c;架构简单&#xff0c;规模也可…

阅读更多 →
2026年AI编程进阶路线:从Vibe Coding到企业级智能体架构实战 2026/9/28 21:10:41

2026年AI编程进阶路线:从Vibe Coding到企业级智能体架构实战

2026年AI编程进阶路线&#xff1a;从Vibe Coding到企业级智能体架构实战摘要&#xff1a;随着大模型技术爆发&#xff0c;AI编程范式正在发生剧变。从传统手写业务代码&#xff0c;到Vibe Coding指挥AI生成代码&#xff0c;再到自主开发AI智能体服务。很多开发者盲目内卷微调、…

阅读更多 →
AWS SDK for Python(Boto3)调用 Amazon Rekognition 完整实战指南 2026/9/28 21:10:41

AWS SDK for Python(Boto3)调用 Amazon Rekognition 完整实战指南

示例工程教程后端 【免费下载链接】aws-doc-sdk-examples Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. 项目地…

阅读更多 →
国产 AI Agent 框架怎么选,元气 Bot 与 ArkClaw 到底适合谁 2026/9/28 21:10:41

国产 AI Agent 框架怎么选,元气 Bot 与 ArkClaw 到底适合谁

选型困境&#xff1a;当 AI Agent 从概念走向落地在 AI 应用开发的浪潮中&#xff0c;开发者们正面临一个甜蜜的烦恼&#xff1a;国产 AI Agent 框架层出不穷&#xff0c;但哪一款才是你手中的“瑞士军刀”&#xff1f;社区里戏称的“四只龙虾”——元气 Bot、ArkClaw、DuClaw …

阅读更多 →
OpenMausBot语音模式:如何让AI Bot开口回话,甚至接打语音电话 2026/9/28 21:10:28

OpenMausBot语音模式:如何让AI Bot开口回话,甚至接打语音电话

OpenMausBot语音模式&#xff1a;如何让AI Bot开口回话&#xff0c;甚至接打语音电话 【免费下载链接】OpenMausBot Open Source Alternative to Grok Bot with a virtual machine that bots can use 项目地址: https://gitcode.com/gh_mirrors/op/OpenMausBot OpenMaus…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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