STM32
直播中

陈丽

7年用户 1544经验值
私信 关注
[问答]

求助,关于STM32F3系列启动时SWD的配置问题求解

求助:小弟现在使用STM32F373RCT6这款芯片,原来使用F103的,由于IO资源使用比较紧凑,基本没什么剩余IO,所以在system_stm32f1xx.c中增加了一个函数

/******************************************************************************
  * @功能简介        :                配置SWJ模式
  * @参    数        :                无
  * @返 回 值        :                无
*******************************************************************************/
////static void Set_DebugMode(uint32_t SWJ_Mode)
////{
////////                RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
////////        
////////                AFIO->MAPR  = ~AFIO_MAPR_SWJ_CFG;
////////                AFIO->MAPR |= SWJ_Mode;
////}

这样可以通过SWDJ的模式切换来释放SWD模式外的3个IO脚
但在STM32F373中,没有AFIO_MAPR这个寄存器,GPIO的复位是通过模式寄存器设置。
如果我在时钟初始化完成后加入一个函数将SWD外的3个脚PA15,PB3,PB4的相关寄存器位清零。
这个操作至少不再如F1下直接SWJ接口的模式切换设定,那F3系列在系统默认初始化的过程中,还是以SWJ(即JTAG+SWD)模式启动,在JTAG和SWD模式切换过程中会有什么隐患在里面?毕竟不再有直接用SWJ接口模式的直接设置,而去单独设置GPIO了
求路过大侠指点

回帖(1)

李咏祥

2024-4-9 14:39:48
没什么区别吧,都是通过应用程序软件设置模式的。
作为输入时,外部信号不能碰巧凑成一条JTAG/SWD指令;
作为输出时,PA13、PA4上电默认上下拉状态,不要影响你电路的工作状态。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分