zoukankan      html  css  js  c++  java
  • STM32JTAG口用作普通IO的配置

    使用Jlink向STM32烧录程序时,需要使用6个芯片的引脚(以STM32F103C8T6为例),分别是PB4/JNTRST、PB3/JTDO、PA13/JTMS、PA14/JTCK、PA15/JTDI、NRST。标准的20针JLink接口如下图所示。 
     
    当芯片IO口资源比较紧张时,可选择SW模式烧录程序。SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用。但是这三个口当做普通IO使用时需要先配置。配置方法:

    void GPIOInit(void)

    {

        GPIO_InitTypeDef GPIO_InitStructure;

        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);    

        /* Disable JLink, enable SW */

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA " RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); 

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

        /* Push-pill output, it can be other output types */

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 

        GPIO_Init(GPIOB, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

        /* Push-pill output, it can be other output types */

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 

        GPIO_Init(GPIOA, &GPIO_InitStructure);

    }

    GPIO_Remap_SWJ_JTAGDisable已在“stm32f10x_gpio.h”文件中进行了宏定义:

    #define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  

    /*!< JTAG-DP Disabled and SW-DP Enabled */

    注意!!!这三个引脚默认的是JLink的复用功能,如果程序中还有其他GPIO口的配置,那这三个引脚的GPIO初始化一定要放在其他所有GPIO配置之后,否则依然无法作为普通IO使用。

    如果非要把这三个引脚的配置放在其他GPIO配置之前,那么在程序中每次使用这些引脚前,需要再添加一句 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 例如:

    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);  

    GPIO_ResetBits(GPIOB, GPIO_Pin_4);  // PB4 is set to 0;

  • 相关阅读:
    pig实战 pig常用语法总结,教你快速入门——算法篇
    本科生码农应该会的6种基本排序算法(《数据结构与算法》)
    java 大块内存做数据缓存 大数据的高效收发
    一键安装zookeeper脚本制作篇 相关经验浅谈
    C语言第01次作业顺序、分支结构
    C语言 第三次作业函数
    hashmap笔记
    ArrayList排序与对象的序列化
    插入排序笔记(MIT算法导论课程)
    java解析四则运算表达式
  • 原文地址:https://www.cnblogs.com/wang--jie/p/10122884.html
Copyright © 2011-2022 走看看