网站首页 > 资源文章 正文
1 功能需求
嵌入式软件开发过程中的调试对开发人员来说是比较关键的功能,目前主流的IDE都具备在线调试功能,可在线设置断点监视程序的变量、内存数据以及单片机寄存器数据等,但是都需要设置断点,如果不设置断点,这些调试功能基本不能用,在有些功能需求开发中,代码必须连续运行,不能设置断点中断程序,那么就需要通过某种方式能够把程序运行过程中需要的信息输出,我认为在开发任何功能以前、编写任何应用代码以前最好能够把调试信息输出的功能先实现,这样后续开发和调试程序会非常方便,就像在Linux系统终端下面一样,可以实时直接打印调试信息。
2 STM32单片机调试信息输出功能的实现方式
2.1 通过串口输出到电脑
2.2 通过外接显示设备(比如OLED显示屏、LED显示屏)输出
2.3 通过ARM内核自带的与仿真器通信接口输出
上述前两种方式都需要单片机外接东西,同时还需要把串口或者显示屏正确驱动,既需要硬件支持,又需要单片机软件支持,否则无法输出调试信息,今天讲述的就是通过第3种方式输出调试信息,不需要单片机外接设备,只是利用下载仿真器和ARM内核自带的功能即可输出调试信息到电脑的IDE软件,所需外围条件最少。
3 具体实现步骤
以STM32F103芯片为例,其它芯片同样用法。
3.1 所用工具
NUCLEO-F103RB 开发板
Keil uVision5.252
3.2 用STM32CubeMX配置单片机参数及生成代码模板
如上图所示,调试口的选择是必须的,可以选择串行通信模式。
如上图所示,工具链/IDE选择MDK-ARM V5,
如上图所示,点击生成代码,如下图所示:
点击打开项目,默认用Keil打开。
3.3 Keil的设置
选择项目,点击目标选项,如下图所示:
选择Debug选项卡,然后点击设置,如下图所示
然后选择Trace选项,启用Trace选项,如下图所示:
如上图所示,内核时钟一定要设置成与单片机工作时钟一样,意思是与下图所示的一致,否则Keil输出窗口显示不正常,会显示乱码。
3.4 代码编写
在main.c里重新定义printf,并实现,主要代码为:
关键代码:
然后就可以调用printf函数输出任意调试信息,如下例输出定时器时间戳:
然后在Keil的调试界面查看输出信息,当然必须在调试模式下,如下图所示:
猜你喜欢
- 2024-10-04 reg52.h文件中的sfr到底是个啥玩意?
- 2024-10-04 嵌入式工程师到底要不要学习ARM汇编指令?
- 2024-10-04 ADC0832简易数字电压表C语言(c51数字电压表)
- 2024-10-04 新建一个STM32的Keil V5工程(keil5新建stm32工程详细图解)
- 2024-10-04 单片机STM32开发,自学第一天(stm32单片机编程教程)
- 2024-10-04 想学嵌入式?keil都不会用可不行(嵌入式学啥语言)
- 2024-10-04 Arm Keil MDK v5.30版本官宣,快来下载
- 2024-10-04 如何使用VS Code 编辑Keil项目(51/STM32)
- 2024-10-04 关于KEIL,你应该知道的事(keil的主要功能和作用)
- 2024-10-04 单片机入门教程之Keil实用教程(单片机编程步骤keil4)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)