你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32单片机SWJ口引脚释放

[复制链接]
贺工 发布时间:2017-10-22 00:02
1:SWJ调试引脚
" d( Z$ U$ }1 u0 w& }
1.PNG
4.png
由表291可知JTAG接口占用了PA13、PA14、PA15、PB3和PB4引脚,作为JTAG口应用时PA13、PA15、PB3和PB4引脚默认内部上拉,PA14引脚默认内部下拉;
SWD接口占用了PA13、PA14引脚;
3 c3 I* i: s$ H
2:释放SWJ接口引脚
2.PNG
5.png
由表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后,引脚默认的状态也发生改变。

/ K* o( j- V; Z- `8 D) X8 `
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);

. H6 m7 @/ d% Z% W. S
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]

0 R% B- i8 i6 Q/ o/ G

6 Q; [" {! y% c- \6 o. p4 ~
/ I+ j, Y1 c' \! D/ n3 u( `: t+ Z: i

9 ~' z$ C: [6 ^% v3 @$ U) O( ]# P, ?

6 R( G, Y1 \% F! S
赞 收藏 1 评论8 发布时间:2017-10-22 00:02

举报

8个回答
lf8013 回答时间:2017-11-7 14:29:31
不错谢谢,应该有的项目可以用得上
贺工 回答时间:2017-11-7 15:32:32
lf8013 发表于 2017-11-7 14:29
" r/ _- r# k6 t+ v4 t% W0 f0 U不错谢谢,应该有的项目可以用得上

" y* k0 {2 n$ L7 Y# {谢谢 支持' m- d: a; q2 l0 e
老牛洋车 回答时间:2018-12-24 15:19:36
正好准备启用PB3和PB4,谢谢楼主提供的资料。
老牛洋车 回答时间:2018-12-24 16:43:50
我将其中02的代码段复制到程序中,可是仅能操控PB4引脚,PB3和PA15两个引脚还是无法操控,我查找了函数原型的说明,JTAG-DP Disabled and SW-DP Enabled的设置代码没有错误,这是什么原因啊?
radio2radio 回答时间:2018-12-25 00:03:20
hujjj 发表于 2018-12-24 16:43
2 T9 ~" \/ B! Q! K我将其中02的代码段复制到程序中,可是仅能操控PB4引脚,PB3和PA15两个引脚还是无法操控,我查找了函数原型 ...
' @' {/ ^% F- v% e0 f& B
我在做CMSIS-DAP编码的时候,成功释放了PA13-SWDIO和PA14-SWCLK,发现,
& i7 t- h! |, g# C6 q  C每次操作之前都必须先执行:" A. {" M# _" U) O7 P7 S& Z) }

: S' C+ B- t% M7 M. s: ~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里面)
: Y% P- L( @, a5 x4 L1 q2 z0 H/ C. ?- w" R: V5 e% X; K* n2 n$ Z. R! |
老牛洋车 回答时间:2018-12-25 09:59:00
谢谢楼上的热心帮助,不过我将这行代码复制到每次对PB3引脚操作之前,测试仍然照旧操控不了PB3引脚,也许还有其他原因吧。
kuangren020 回答时间:2019-3-6 18:03:17
hujjj 发表于 2018-12-25 09:597 I. y) L; P) V/ i7 Q" u
谢谢楼上的热心帮助,不过我将这行代码复制到每次对PB3引脚操作之前,测试仍然照旧操控不了PB3引脚,也许还 ...
4 g; A, O; [* y  ~& K) k4 n
请问你控制PB3的问题解决了没呢?
老牛洋车 回答时间:2019-3-6 18:52:16
kuangren020 发表于 2019-3-6 18:03
: |) @8 b- o3 s请问你控制PB3的问题解决了没呢?

' F' i! s& C6 p4 D" {5 r2 B# h" `没有,后来没时间继续测试了。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版