打印
[其他ST产品]

STM32F103屏蔽JTAG/SWD 以及PC13,PC14,PC15的RTC晶振禁用。

[复制链接]
268|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32F103屏蔽JTAG/SWD 以及PC13,PC14,PC15的RTC晶振禁用
1.关于JTAG/SWD屏蔽
2.PC13,PC14,PC15的RTC晶振屏蔽

1.关于JTAG/SWD屏蔽
STM32F103系列上的一些IO口在标准库上想要做成普通IO口时的配置。
通过芯片手册JTAG/SWD的管脚PB3,PB4,PA13,PA14,PA15。




根据上面的图时JTAG/SWD下载调试的几个I/O口对与做成普通I/O需要禁用下载调试功能才可设置成普通的I/O来控制。

使用特权

评论回复
沙发
xiyaoko2365|  楼主 | 2023-11-21 15:20 | 只看该作者
标准库里在配置I/O口的时候,有配置到PA13,PA14,PA15,PB3,PB4时可以根据你所需要情况来屏蔽相对应的管脚JTAG/SWD的功能。

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //关闭所有的JTAG/SWD功能, PB3 PB4 PA13 PA14 PA15作为普通I/O口使用。

使用特权

评论回复
板凳
xiyaoko2365|  楼主 | 2023-11-21 15:20 | 只看该作者
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG的PB3 PB4 PA15的功能,作为普通I/O口使用,不影响SWD的下载调试。

使用特权

评论回复
地板
xiyaoko2365|  楼主 | 2023-11-21 15:20 | 只看该作者
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,
ENABLE);//单独关闭PB4的JTAG功能,将PB4做为普通I/O使用。

使用特权

评论回复
5
xiyaoko2365|  楼主 | 2023-11-21 15:20 | 只看该作者
配置程序如下:
void GPIOInit(void) //IO初始化
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
       
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);
        //单独禁用PB4的JTAG功能
        //(其余的也时一样的操作,想配置的这几个I/O口对应的关闭JTAG的功能)

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOB, &GPIO_InitStructure);

}

使用特权

评论回复
6
xiyaoko2365|  楼主 | 2023-11-21 15:21 | 只看该作者
2.PC13,PC14,PC15的RTC晶振屏蔽
对于PC13,PC14,PC15这几个管脚也是有特色功能要作为普通I/O口需要对应禁用掉。
通过芯片手册了解PC14的OSC32_IN 与PC15的OSC32_OUT 以及PC13的TAMPER管脚的说明。

使用特权

评论回复
7
xiyaoko2365|  楼主 | 2023-11-21 15:21 | 只看该作者
在配置普通I/O输出模式下的PC13,PC14,PC15的管脚速度被限制在了2MHZ。

使用特权

评论回复
8
xiyaoko2365|  楼主 | 2023-11-21 15:22 | 只看该作者
根据说明进行对标准库中的代码进行屏蔽功能,变成普通I/O口使用。标准库代码如下操作:
void GPIOInit (void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
   
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE );
    PWR_BackupAccessCmd( ENABLE );// 允许修改RTC和后备寄存器
    RCC_LSEConfig( RCC_LSE_OFF ); //关闭外部低速时钟,PC14,PC15用作普通IO
    BKP_TamperPinCmd(DISABLE);  // 关闭入侵检测功能,PC13用作普通IO

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;        
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    PWR_BackupAccessCmd(DISABLE);// 禁止修改RTC和后备寄存器
    //BKP_ITConfig(DISABLE);       //禁止TAMPER 中断
}

使用特权

评论回复
9
xiyaoko2365|  楼主 | 2023-11-21 15:22 | 只看该作者
以上就是对一些I/O口标准库屏蔽操作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

387

帖子

0

粉丝