stm32F407VG JTAG引脚怎么样设为普通IO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32F407VG JTAG引脚怎么样设为普通IO相关的知识,希望对你有一定的参考价值。

在stm32f4中不是这样的,STM32F4库函数中,已经取消了GPIO_PinRemapConfig()函数,对于复用功能,使用GPIO_PinAFConfig()函数了!
但是在GPIO_PinAFConfig()函数已经没有禁止JTAG/SW等选项了,而是复用到AF0~AF15线上,其中AF0是系统功能,STM32F4复位后JTAG对应的管脚的对应的功能就是AF0,(GPIO_AF_MCO=0) 所以这句可以不用:GPIO_PinAFConfig( , ,GPIO_AF_MCO);
直接配置GPIOx_MODER为输出,或输入模式即可,但是注意:STM32F4复位后JTAG对应的管脚的GPIOx_MODER值是0x02,即 复用功能!
所以直接配置GPIOx_MODER为所需的模式就可以了!

所以f4中,我们使用不用的jtag脚只需像平常使用其他io一样配置就好了
参考技术A RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //TIM14ʱÖÓʹÄÜ
GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_TIM3);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; //GPIOD7¸´ÓÃΪ¶¨Ê±Æ÷
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //¸´Óù¦ÄÜ
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //ËÙ¶È100MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //ÍÆÍ츴ÓÃÊä³ö
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //ÉÏÀ­
GPIO_Init(GPIOB,&GPIO_InitStructure); //³õʼ»¯PF9

还是不行?? 怎么处理 PB4 输出PWM ,PC7-PC9可以正常输出??
参考技术B F4的重映射函数跟F1不同。你可以参考官方,随便一个重映射的例程,就知道怎么改了。。。我就懒得帮你查了。

JTAG的SWD接线方式

JTAG引脚示意图:

技术分享

 

一、SWD 和传统的调试方式区别

1. SWD 模式比 JTAG 在高速模式下面更加可靠

2. GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚

3. 在板子的体积有限的时候推荐使用 SWD 模式

二、仿真器对 SWD 模式支持情况

1. 市面上的常用仿真器对 SWD 模式支持情况

JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M

ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M

2. SWD 硬件接口上的不同

(1) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK (2) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的实际连线及相应实验结果) (3) ULINK1 不支持 SWD 模式 (4) ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK 三、在 MDK 中SWD 模式的设置

正常的JTAG需要20管脚,而J-Link 的SWD只需要2根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4根),这样就节省了3个I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4个口就可以了)

第一步:

技术分享

技术分享

第二步:

技术分享技术分享

 

另外, JTAG引脚可以被复用为IO口,但是这样一来,JLINK就不能够连上芯片了。解决的方法有两种:     (1)另写一段程序,不要将JTAG复用为I/O口,然后将这段程序用串口工具写入芯片中     (2)将BOOT0/BOOT1设置成为内部RAM启动,那么上电后就不会执行FLASH中的程序,这样JLINK就能顺利“接管”JTAG引脚

以上是关于stm32F407VG JTAG引脚怎么样设为普通IO的主要内容,如果未能解决你的问题,请参考以下文章

STM32F4 HAL库开发 -- STM32F407引脚图

STM32F4 HAL库开发 -- STM32F407引脚图

STM32F407VG 时钟配置

STM32F407VG 定时器

我们不能在 stm32 F407VG 的 ISR 中使用 HAL_Delay()

STM32f407定时器用为编码器接口模式采集脉冲,但单片机供电后,复用引脚直接有电压输出