1:SWJ调试引脚
由表291可知JTAG接口占用了PA13、PA14、PA15、PB3和PB4引脚,作为JTAG口应用时PA13、PA15、PB3和PB4引脚默认内部上拉,PA14引脚默认内部下拉; SWD接口占用了PA13、PA14引脚; 3 c3 I* i: s$ H 2:释放SWJ接口引脚
由表292可知有三种情况下,SWJ可以释放某些引脚作为普通IO使用。 01:Full SWJ (JTAG-DP + SW-DP) but without NJTRST情况下,可以释放PB4; 02:JTAG-DP Disabled and SW-DP Enabled情况下,可以释放PB3、PB4和PA15; 03:JTAG-DP Disabled and SW-DP Disabled情况下,PA13、PA14、PA15、PB3和PB4引脚可以全部释放。 释放作为普通IO后,引脚默认的状态也发生改变。 3:软件配置 将SWJ接口引脚释放成为普通IO需要软件配置。具体配置说明如下: 01:Full SWJ (JTAG-DP + SW-DP)but without NJTRST情况下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); 02:JTAG-DP Disabled and SW-DPEnabled情况下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 03:JTAG-DP Disabled and SW-DPDisabled情况下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); 2 ~4 j" w! V' \% M 附: 之前发过的帖子 01: 02: [url=STM32高级定时器死区控制 https://www.stmcu.org.cn/module/ ... &fromuid=378879 (出处: 意法半导体STM32/STM8技术社区)]STM32高级定时器死区控制[/url] 3 @$ U) O( ]# P, ? |
微信公众号
手机版
谢谢 支持' m- d: a; q2 l0 e
我在做CMSIS-DAP编码的时候,成功释放了PA13-SWDIO和PA14-SWCLK,发现,
每次操作之前都必须先执行:" A. {" M# _" U) O7 P7 S& Z) }
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_DISABLE;3 d2 W. ?: m1 G; @8 A
9 K8 U. n e' o3 M' I
不能仅仅在初始化的时候做一次就算了。完整的代码,参见我的贴子:, W7 B, G: `7 `- v# p2 g+ {
【源代码】STM32F103C8T6最小板搞定CMSIS-DAP和SWO功能+ o( u, ?/ H. W; a
(有关部分,在DAP_config.h里面)
" R: V5 e% X; K* n2 n$ Z. R! |
请问你控制PB3的问题解决了没呢?
没有,后来没时间继续测试了。