使用STLINK进行程序调试

通过串口来调试程序,每一次改动都要重新烧录到单片机,这样不仅不灵活,而且单片机的烧录次数是有限的,这样会影响到单片机的寿命。简单的程序可以拿串口来这样玩,但复杂的这样玩就太累了。通过查阅一些资料和各位博主的指点,学会了通过STLINK进行硬件连接后在线调试。用STLINK来调试可以真实访问查看寄存器的变化,下面就以串口输出内容到上位机显示为例,讲述一下如何用STLINK来调试程序。

  1. 安装STLINK驱动程序。因本例程需要用到串口将内容输出到上位机,我的板子采用芯片CH340将USB转串口,所以要安装CH340 驱动。
  2. 建立工程,将如图文件包含到工程里
  3. Options for Target 选项卡在 Debug 栏选择仿真工为具 Use:ST-Link Debugger,如图依次 成4个步骤
    然后点击Settting进行STLINK参数设置,我选用SW模式,JTAG占用比较多的I/O,容易影响其他外设的使用,速率不要选择太大,否则会出现问题。

    接下来我们还需要在 Utilities 选项卡里面设置下载时的目标编程器

    我们直接勾选 Use Debug Driver,即和调试一样,选择 ST LINK 来给目标器件的 FLASH 编程,然后点击 Settings 按钮,进入 FLASH 算法设置

    这里 MDK5 会根据我们新建工程时选择的目标器件,自动设置 flash 算法。我使用的是STM32F103RCT6,FLASH 容量为 256K 字节,属于高容量系列,所以 Programming Algorithm里面默认会有 512K 型号的 STM32F10x High-density Flash 算法(注意:256K 和 512K 共用)。另外,如果这里没有 flash 算法,大家可以点击 Add 按钮,自行添加即可。最后选中 Reset and Run
    选项,以实现在编程后自动启动,其他默认设置即可。
  4. 设置好后编写程序
void GPIO_Configuration(void)
{   GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA, &GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStruct);
}void USART_Configuration(void)
{USART_InitTypeDef USART_InitStruct;USART_InitStruct.USART_BaudRate=9600;USART_InitStruct.USART_WordLength=USART_WordLength_8b ;USART_InitStruct.USART_StopBits=USART_StopBits_1;USART_InitStruct.USART_Parity=USART_Parity_No;USART_InitStruct.USART_Mode=USART_Mode_Tx |USART_Mode_Rx;USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_Init(USART1,&USART_InitStruct);USART_Cmd(USART1, ENABLE);}//---------´ò¿ªÏàÓ¦ÍâÉèʱÖÓ--------------------
void RCC_Configuration(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);   //ʹÄÜAPB2ÍâÉèµÄGPIOAµÄʱÖÓRCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);  //ʹÄÜUSARTʱÖÓ        }
void Delay_Ms(u16 time)  //ÑÓʱº¯Êý
{ u16 i,j;for(i=0;i<time;i++)for(j=10000;j>0;j--);
}int main(void){    u8 i,data;RCC_Configuration();GPIO_Configuration();USART_Configuration();data='A';for(i=0;i<30;i++){while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);USART_SendData(USART1,data);data++;while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);}return(0);}

接下来将硬件连接,下载后就点击Debug后就可以实时跟踪程序,很方便的找到程序的bug。

使用STLINK进行程序调试相关推荐

  1. ST-LINK下载程序出现flash download failed - ‘cortex m4‘

    ST-LINK下载程序出现flash download failed - 'cortex m4' 可能原因:项目测试时使用ST-link下载程序调试,之前都好好的可以下载程序,之后可能做掉电存储等一些 ...

  2. STM32f103调试笔记(2)——使用ST-LINK下载程序的时候,不按住复位键无法下载?

    这也是很常遇见的一个问题了.使用ST-Link下载程序的时候,总是显示无法识别设备,查阅了网上的解决方法,只要按住复位键,然后点击LOAD以后迅速松开复位键就可以了.这也是一种方法啦,但是每次都要按一 ...

  3. Keil5 MDK版本使用ST-LINK下载程序的方法及注意事项

    1.进入Keil软件打开魔法棒 2.进入调试选项页面 按照下图所示顺序选择好ST-Link Debugger后进入Settings 3.进入Settings后,在Debug选项卡里选择sw模式 完成以 ...

  4. java中的匿名类方法覆盖_Java技巧:用匿名类来实现简化程序调试

    Java技巧:用匿名类来实现简化程序调试 在Java中,匿名类(Anonymous inner classes)多用来处理事件(event handle).但其实,它们对于debug也很有帮助.本文将 ...

  5. python示例异常处理与程序调试_笔记:Python异常处理与程序调试

    Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...

  6. 如何使用日志进行程序调试_如何使用日志节省调试时间

    如何使用日志进行程序调试 by Maya Gilad 通过Maya Gilad 如何使用日志节省调试时间 (How to save hours of debugging with logs) A go ...

  7. .net程序调试一:快速定位异常

    .net程序调试一:快速定位异常 参考文章: (1).net程序调试一:快速定位异常 (2)https://www.cnblogs.com/yuilin/p/3788796.html 备忘一下.

  8. 调试内存_C/C++程序调试和内存检测

    来源:wxquare www.cnblogs.com/wxquare/p/4840063.html 程序出现错误很正常,一个优秀的程序员必须学会调试,发现错误并改正.减少程序错误最有效的方法是:在敲代 ...

  9. Linux上程序调试的基石(2)--GDB

    3. GDB的实现  GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序.可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况.它的实现也是基于ptrace系统调用来完成的. ...

最新文章

  1. 【计算机图形学】六面体旋转并实时切换虚线实线 - 代码实现
  2. 【转】Win7、Ubuntu双系统正确卸载Ubuntu系统--不错
  3. uniapp自定义条件编译-定制化产品
  4. 专业词汇---BUG部分-02
  5. VMware中centos6.5 minimal 使用NAT模式联网
  6. ArcEngine 相关-转载
  7. 微信小程序 editor富文本编辑器组件封装
  8. IDC 发布《中国视频云市场跟踪》最新报告,视频云市场将趋向何方?
  9. 碳化硅纳米线,SiC纳米线(SiC nanowires),SiC短纤维(SiC fiber),SiC晶须(SiC whiskers)的主要应用方向,检测XRD图谱
  10. 计算机应用基础系统总线,2019年自学考试计算机应用基础试题(4)
  11. hibernate的关联映射 (员工管理)
  12. 如何打开计算机无线功能灰色,计算机没有wifi,仅显示宽带连接. 右键单击灰色的无线网络连接图...
  13. AngelSword(天使之剑)漏洞框架的使用
  14. 如何躲避红蜘蛛的控制
  15. 海康威视E200Pro固态硬盘(联芸MAS0901)SMART信息解析
  16. 如何解决收到网监大队信息系统安全等级保护限期整改通知书
  17. 【96期】盘点那些关于Nginx的常考面试题
  18. C语言基础课 编写程序之编程实现在一个字符串统计各元音字母(即A,E,I,O,U)的个数,注意,字母不分大小写。例如,输入THIs is a boot,则输出应为1 0 2 2 0
  19. 鼎普计算机保密检查系统,敏感电子信息集中管控平台系统
  20. 3DS MAX 2022下载及安装教程 3dmax软件下载安装

热门文章

  1. m3u8流文件在html视频播放器中播放有声音无画面问题
  2. 计算机科学学科知识体系核心内容,计算机专业核心课程教学改革和教材建设的重要指导...
  3. Bootstrap置信区间和GEV拟合pdf
  4. Python之旅:入门
  5. 完整的爱在线观看(完整版)
  6. 带孩子们做环球旅行的读后感_带着孩子必须要做的5件事,你做了几件
  7. java mysql 酒店信息,java+mysql酒店信息管理系统的设计论文
  8. vue项目打包部署后css样式失效
  9. 详细介绍 什么是智能手机及具体分类
  10. 图像生成与图像模型——摄像机的几何模型