参考资料:
嵌入式单片机STM32原理及应用(机械工业出版社)
江科大STM32入门教程: 【STM32入门教程-2023持续更新中】 https://www.bilibili.com/video/BV1th411z7sn/?p=10&share_source=copy_web&vd_source=ee06a25b3dfb2900ab707b01fdff6667
STM32调试
调试方法
STM32调试方法一般有以下三种:
串口调试: 通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息
显示屏调试: 直接将显示屏连接到单片机,将调试信息打印在显示屏上
Keil调试模式: 借助Keil软件的调试模式,可使用单步运行、设置断电、查看寄存器及变量等功能
本文将对显示屏调试做简单的讲解(具体参考江科大STM32教程),重点对Keil调试模式 进行讲解和演示
OLED显示屏调试
OLED简介
OLED(Organic Light Emitting Diode): 有机发光二级管
OLED显示屏: 性能优异的新型显示屏, 具有功耗低、响应速度快、宽视角、轻薄柔韧等特点
0.96寸OLED模块: 小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块
供电: 3~5.5V, 通信协议: I2C/SPI, 分辨率: 128*64


注意: 4脚的通信协议为I2C,7脚的通信协议为SPI
OLED驱动函数
函数 | 作用 |
OLED_Init(); | 初始化 |
OLED_Clear(); | 清屏 |
OLED_ShowChar(1, 1, 'A'); | 显示一个字符 |
OLED_ShowString(1, 3, "HelloWord!"); | 显示字符串 |
OLED_ShowNum(2, 1, 12345, 5); | 显示十进制数字 |
OLED_ShowSignedNum(2, 7, -66, 2); | 显示有符号十进制数字 |
OLED_ShowHexNum(3, 1, 0xAA55, 4); | 显示十六进制数字 |
OLED_ShowBinNum(4, 1, 0xAA55, 16); | 显示二进制数字 |
注意:
SCL、SDA 默认接到B8、B9引脚
如不按默认接法, 则俺需要更改OLED.c文件中以下四条代码
/*引脚配置*/
#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) // 按需要更改
#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x)) // 按需要更改
/*引脚初始化*/
void OLED_I2C_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // 按需要更改
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // 按需要更改
GPIO_Init(GPIOB, &GPIO_InitStructure);
OLED_W_SCL(1);
OLED_W_SDA(1);
}
Keil调试模式
硬件在线仿真
步骤:
步骤一: 点击魔术棒,选择Debug选项,选择右边的Use

步骤二: 确保ST-Link与STM32单片机连接正确
步骤三: 点击放大镜按钮进入调试界面

调试界面介绍

程序运行控制按键

Reset 复位功能键 点击后程序复位


可以看到程序回到启动文件
持续运行
按下此按键后程序会一直运行(有断点则运行至断点停止)

其他运行方式

工具栏

包括有: 控制窗口、汇编窗口、符号窗口、汇编窗口、调用栈窗口、Watch窗口、内存窗口、序列窗口、逻辑分析仪窗口和系统查看窗口等等。
下面将介绍几个重要的窗口
逻辑分析仪窗口

点击后出现逻辑分析仪,可以测输入输出信号的波形,根据波形可以判断程序是否正确
控制窗口

可以在控制窗口中输入一些指令来完成某些操作
系统查看窗口

可以选择对应外设,查看其寄存器的状态

这里查看的是GPIOC ODR寄存器的状态,可以看到ODR13是一个输出状态;值得一提的是,该状态是实时的动态状态,闪烁程序运行时ORD13的√每隔0.5s显示一次
电脑软件仿真
点击魔术棒,选择Debug选项,选择左边的Use

其余内容与硬件在线仿真类似,二者的区别是硬件在线仿真的方式需要仿真器和STM32开发板,优点是调试过程中硬件也会出现相应现象;而软件仿真的方式则不需要硬件支持,直接在电脑上即可运行,常用逻辑分析仪查看波形,现象没那么明显
逻辑分析仪的使用
步骤:
步骤一:

步骤二:进入调试界面,再进入逻辑分析仪点击Setup,添加需要分析的端口或引脚,将Display Type改为Bit



步骤三: 点击全速运行

步骤四: 点击Auto即可出现波形
