首页 > 其他分享 >STM32禁用JTAG,并使用JTAG引脚为通用IO口(转载)

STM32禁用JTAG,并使用JTAG引脚为通用IO口(转载)

时间:2022-11-04 09:26:41浏览次数:81  
标签:ENABLE 引脚 复位 禁用 STM32 JTAG 下载 RCC

STM32禁用JTAG,并使用JTAG引脚为通用IO口

两种禁用模式

标准库配置:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); //使能相应接口的时钟,以及RCC_APB2Periph_AFIO

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//完全禁用SWD及JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //禁用JTAG
HAI库配置方式:

__HAL_RCC_AFIO_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE(); //
__HAL_RCC_GPIOF_CLK_ENABLE(); //

/* JTAG-DP Disabled and SW-DP Disabled */
__HAL_AFIO_REMAP_SWJ_DISABLE(); //完全禁用SWD及JTAG
__HAL_AFIO_REMAP_SWJ_NOJTAG(); //禁用JTAG

需要注意:禁用前必须要使能对应接口的时钟和RCC_APB2Periph_AFIO复用时钟

产生的副作用
在禁用掉相应的接口方式后,即不能再使用这种方式下载程序了。因此会出现很多人遇到的:“”RAM check failed at :“”或者“NO M-Cortex”.

遇到这个状况,需要再次下载程序,有如下三种办法:

如果只禁用的JTAG,可以用SWD模式下载程序进去。

否则只能后续两种,但总体思路都是不认让代码运行起来,不去禁用JTAG及SWD,这时候下载程序。

采用人工复位,按钮或短接。在程序下载进行到复位的这一步,完成复位动作。短路复位电容,点下载,稍等几秒(这个靠感觉喽),断开短路的电容,OK!大功告成!这是因为复位的时候,禁止JTAG的寄存器也是复位状态,所以JTAG就自动启动,未被禁止。在系统复位的时候默认是开启JTAG与swd的,在点击下载后的2秒内按下复位键即可将程序下载进stm32。

拉高BOOT0->重新上电->程序不能运行->下载程序-> 拉低BOOT0->重新上电->程序正常运行

注意及总结

根据自己实际需要的禁用方式来禁用JTAG及SWD。只需禁用JTAG,不用完全禁用,就会避免这些问题了。

一开始能正常下载,后来不能下载了,一定是代码配置中出现的问题。细心查找网络资源及代码配置试验后,总结出了出错原因。

参考原文链接:https://blog.csdn.net/qq_27747359/article/details/86483900
————————————————
版权声明:本文为CSDN博主「晚起的虫子被鸟吃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/er131/article/details/126720163

标签:ENABLE,引脚,复位,禁用,STM32,JTAG,下载,RCC
From: https://www.cnblogs.com/constanto/p/16856574.html

相关文章

  • 野火 STM32MP157 开发板内核和设备树的编译烧写
    一、环境编译环境:Ubuntu版本:18.4.6交叉编译工具:arm-linux-gnueabihf-gcc版本:7.4.1开发板:STM32MP157pro烧写方式:STM32CubeProgrammer、TFTP、在线烧写安装工具gcc......
  • 《STM32MP1 M4裸机HAL库开发指南》第十二章 C语言LED灯实验
    第十二章C语言LED灯实验为了加深理解汇编语言以及汇编初始化过程,第十一章我们使用汇编来控制LED0。本章节我们来学习使用C语言来控制LED0,实际的开发中我们接触最多的就是C......
  • 【c&c++】 cjson使用_Keil环境下Jansson解析库的使用——基于STM32F103
    前言之前我曾经写过几个JSON解析库的使用方法:Qt平台下使用QJson解析和构建JSON字符串使用cJSON库解析JSON使用cJSON库构建JSON对于嵌入式开发,比较常用的就是cJSON解析......
  • MX6U的模仿STM32及SDK移植的部分知识
    模仿STM32驱动开发格式知识点:类似于STM32工程文件中的部分头文件,设置好所有需要用到的寄存器地址,定义结构体变量,通过结构体指针访问寄存器,从而实现控制效果。这里截取文......
  • vscode stm32调试环境搭建
     一、安装vscodehttps://blog.csdn.net/m0_62349010/article/details/122867131二、安装扩展(extension)C/C++:又名cpptools,提供Debug和Format功能CodeRunner:右键......
  • STM32 USB学习笔记6
    主机环境:Windows7SP1开发环境:MDK5.14目标板:STM32F103C8T6开发库:STM32F1Cube库和STM32_USB_Device_Library现在来分析哈USB器件库代码,先来看usbd_core文件,其头文件只......
  • VScode Configuration STM32
    基于VScode搭建STM32运行环境所需软件vscode:是我们的代码编辑器STM32CubeMX:是我们配置和初始化的软件OpenOCD:是开源片上调试器,他下载完是一个压缩包,需要配......
  • [I.MX6UL] 用STM32的方式来写I.MX6UL程序
    /**************************************************************Copyright©zuozhongkaiCo.,Ltd.1998-2019.Allrightsreserved.文件名:mian.c作者:左......
  • STM32 HAL IIC软模拟
    IIC(Inter-IntegratedCircuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连......
  • 单片机 STM32 HAL GSM通讯 SIM800L
    /*************笔记****************1、本SIM800L模块采用huart3(串口3),然后huart1(串口1)作为调试输出。2、CudeMX配置huart3:----------------------------------------......