【STM32】【调试】【示波器】【逻辑分析仪】如何使用Keil5输出波形-Jojo

前注:本文章主要讲解【STM32】【示波器】【固件库(标准库)】

内容为 'Jojo'编写,日常学习总结,内容如有不足、不妥之处请私信告知,谢谢!

目录

前言

基本配置

1.打开魔法棒(巴啦啦小魔仙变!)

2.打开Debug调试页面

3.使用模拟器

4.勾选(启动时加载应用程序)(运行主函数)

5.更改参数

 6.点击OK​

 创建变量

1.打开仿真调试按钮

2.选择逻辑分析仪

 3.创建变量​

 点击创建变量

  点击创建变量

 4.运行

效果演示


前言

文章主要记录如何利用Keil5仿真功能的逻辑分析仪,有利于在没有示波器傍身时救命!

本实验时根据固件库代码实验的 设置基本一样工程文件: 密码:Snake

进入调试模式需要连接芯片

基本配置

1.打开魔法棒(巴啦啦小魔仙变!)

2.打开Debug调试页面

3.使用模拟器

 

4.勾选(启动时加载应用程序)(运行主函数)

5.更改参数

第一项:SARMCM3.DLL

                 -REMAP

第二项:DARMSTM.DLL

                -pSTM32F103ZE   根据芯片选择例如STM32F103ZE、STM32F103C8    

 

 6.点击OK

 创建变量

1.打开仿真调试按钮

2.选择逻辑分析仪

 3.创建变量

 点击创建变量

根据所要显示的引脚进行创建

本次实验使用GPIOB PIN5 PIN8引脚

三种创建方式

第一种:

PORTx.n  x为端口号 n为引脚号

PORTB.5

PORTB.8

 

根据引脚进行偏移

第二种:

GPIOx_ODR.n      x为端口号 n为引脚号

GPIOB_ODR.5

GPIOB_ODR.8

第三种:

打开符号表窗口(一定要在打开调试模式下

 

 

选择对应GPIO和ODR

拉进逻辑分析仪

  点击创建变量

设置变量,选择Bit

 4.运行

观察逻辑分析仪

效果演示

### Keil 软件逻辑分析仪使用教程 #### 一、基础配置 为了正确使用 Keil逻辑分析仪功能,需先完成基本的调试环境配置。具体步骤包括在 Debug 设置中启用模拟器 (Use Simulator),并运行至 `main()` 函数入口处[^2]。此外,还需调整 Dialog DLL 参数为 `DARMSTM.DLL` 并指定目标芯片型号参数(例如 `-pSTM32F103C8` 或其他适用型号)。这些设置可通过点击工具栏中的“魔术棒”图标进入 Debug 配置页面实现[^5]。 #### 二、逻辑分析仪启动与信号选择 当上述配置完成后,可开启调试模式并通过菜单找到 Logic Analyzer 工具窗口。在此窗口顶部通常存在一个名为 **Setup** 的按钮,用于定义待监测的具体 IO 引脚及其编号。对于 STM32 系列微控制器而言,应采用标准语法形式 `GPIOx_IDR.y` 来表示目标引脚位置,其中字母 `x` 对应于端口号范围 A 至 G,而数值 `y` 则指代该端口下的第几个引脚序号。如果仅关注单一引脚 PA0,则输入表达式即为 `PORTA.0`[^4]。 #### 三、注意事项 实际应用过程中可能会遇到某些特殊状况,比如 MDK Logic Analyzer 显示未知信号的情况。这可能是由于未正确定义所监控的目标变量或者硬件资源冲突所致[^1]。另外值得注意的一点在于系统默认外接晶体振荡频率设定可能并非始终匹配项目需求;例如部分版本下其初始值被设定了不同于常规预期的 12 MHz 而不是常见的 8 MHz ,这种差异将直接影响最终呈现出来的波形周期准确性因此建议核查相关初始化代码片段确保二者保持一致性。 ```c // 示例:初始化时钟源为 8MHz void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; // 启用外部高速晶振 RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; // PLL倍频因子 HAL_RCC_OscConfig(&RCC_OscInitStruct); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2); } ``` 以上代码展示了如何通过修改 HAL 库函数来重新校准内部时基以适应特定应用场景的要求。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值