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来控制。
标准库里在配置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口使用。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG的PB3 PB4 PA15的功能,作为普通I/O口使用,不影响SWD的下载调试。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,
ENABLE);//单独关闭PB4的JTAG功能,将PB4做为普通I/O使用。
配置程序如下:
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);
}
2.PC13,PC14,PC15的RTC晶振屏蔽
对于PC13,PC14,PC15这几个管脚也是有特色功能要作为普通I/O口需要对应禁用掉。
通过芯片手册了解PC14的OSC32_IN 与PC15的OSC32_OUT 以及PC13的TAMPER管脚的说明。
在配置普通I/O输出模式下的PC13,PC14,PC15的管脚速度被限制在了2MHZ。
根据说明进行对标准库中的代码进行屏蔽功能,变成普通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 中断
}
以上就是对一些I/O口标准库屏蔽操作。