OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7239|回复: 16

如何将SWDIO与SWCLK设置为SWJ功能?

[复制链接]

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
发表于 2021-11-16 10:01:45 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 dukeyi 于 2021-11-16 10:09 编辑

如何将SWDIO与SWCLK设置为SWJ功能?由于看错原理图导致把SWDIO引脚配置为普通IO;导致无法烧录程序,后经晚上查阅资料,将BOOT0拉高后可以实现烧录程序,但是不能debug;再次查阅资料说要把SW的两个引脚开启复用功能,参考代码如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启AFIO时钟

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);// 改变指定管脚的映射、但是在F4之中好像并没有RCC_APB2Periph_AFIO这个时钟,请问大家谁遇到过这个问题么?谢谢!
补充一下 我用的是STM32F405RGT6


最佳答案

查看完整内容[请看2#楼]

重新下载一次代码即可。 B0接3.3然后再下载。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2021-11-16 10:01:46 | 显示全部楼层
dukeyi 发表于 2021-11-22 10:38
谢谢,我想用SWCLK和SWDIO用作SWD功能,但是由于不小心将SW的那俩引脚配置成普通IO了,导致现在没办法把 ...

重新下载一次代码即可。
B0接3.3然后再下载。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-11-16 15:15:22 | 显示全部楼层
把两个IO使能回来就好,删掉相应这两个引脚复用为普通IO的配置
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-16 15:17:54 | 显示全部楼层
又经过查阅资料 貌似F4不需要开启AFIO时钟?使用        GPIO_PinAFConfig函数对A13,A14进行初始化,发现还是不行;是不是初始化的不对?我看GPIO_PinAFConfig需要传进去一个GPIO_PinSource,应该是13和14吧 这点和GPIO_Init还不太一样。。

GPIO_PinAFConfig(GPIOA ,GPIO_PinSource13, GPIO_AF_SWJ);
GPIO_PinAFConfig(GPIOA ,GPIO_PinSource14, GPIO_AF_SWJ);
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-16 15:25:47 | 显示全部楼层
Tlava 发表于 2021-11-16 15:15
把两个IO使能回来就好,删掉相应这两个引脚复用为普通IO的配置

谢谢,已经删掉普通IO配置,怎么使能呢?
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4728
金钱
4728
注册时间
2015-1-10
在线时间
590 小时
发表于 2021-11-16 16:22:42 | 显示全部楼层
只是烧录程序的话你RESET就行了
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-16 16:24:12 | 显示全部楼层
阿侑kevin 发表于 2021-11-16 16:22
只是烧录程序的话你RESET就行了

主要是想debug 烧录程序现在能通过BOOT搞定
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4728
金钱
4728
注册时间
2015-1-10
在线时间
590 小时
发表于 2021-11-16 16:53:43 | 显示全部楼层
dukeyi 发表于 2021-11-16 16:24
主要是想debug 烧录程序现在能通过BOOT搞定

那就不太行
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-16 17:02:47 | 显示全部楼层
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2021-11-4
在线时间
4 小时
发表于 2021-11-18 11:08:59 | 显示全部楼层
如何将SWDIO与SWCLK设置为SWJ功能?
楼主,这里的SWJ功能是否笔误?应该是SWD功能吧。

问题描述不太清楚,你是想用STM32F405RGT6来做SWD的模拟调试动作呢,还是使用它本身的SWDIO和SWCLK做?
使用STM32F405RGT6来做SWD的模拟调试动作,那么你就必须使用其它的IO口来做SWD的模拟动作。
使用它本身的SWDIO和SWCLK,那么就直接使用J-link或者ST-Link连接这两个口,就可以了,电脑上使用Keil5,AIR,STM32 ST-LINK Utility等软体就能调试了。
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-22 10:38:41 | 显示全部楼层
leon0818 发表于 2021-11-18 11:08
如何将SWDIO与SWCLK设置为SWJ功能?
楼主,这里的SWJ功能是否笔误?应该是SWD功能吧。

谢谢,我想用SWCLK和SWDIO用作SWD功能,但是由于不小心将SW的那俩引脚配置成普通IO了,导致现在没办法把他回复到SWD功能上去了(已经把配置普通IO的代码删掉了),现在可以通过BOOT或者复位的形式吧程序下载进去 但是没办法debug,不知道对于这个现象有没有好的建议
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-23 11:59:35 | 显示全部楼层
正点原子 发表于 2021-11-23 02:12
重新下载一次代码即可。
B0接3.3然后再下载。

重新下载了 还是不好使 不过我现在怀疑新下进去的程序没跑起来,导致没能把那俩引脚重新初始化,可是我又想不明白 为啥跑不起来。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2021-11-24 01:44:18 | 显示全部楼层
dukeyi 发表于 2021-11-23 11:59
重新下载了 还是不好使 不过我现在怀疑新下进去的程序没跑起来,导致没能把那俩引脚重新初始化,可是我又 ...

不好使说明你新的代码也是禁止了SWD的,你得下一个没有禁止SWD的才行。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-25 09:32:15 | 显示全部楼层
正点原子 发表于 2021-11-24 01:44
不好使说明你新的代码也是禁止了SWD的,你得下一个没有禁止SWD的才行。

我把初始化SWD为IO的部分已经删掉了 其他也没有写禁止SWD 这个非常之确定 而且我烧录了一个咱们的LED的历程 也不好使
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2021-11-27 23:48:04 | 显示全部楼层
dukeyi 发表于 2021-11-25 09:32
我把初始化SWD为IO的部分已经删掉了 其他也没有写禁止SWD 这个非常之确定 而且我烧录了一个咱们的LED的历 ...

不可能吧,实在不行,发回来我们看看吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-11-29 09:41:23 | 显示全部楼层
正点原子 发表于 2021-11-27 23:48
不可能吧,实在不行,发回来我们看看吧

谢谢原子哥!
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2018-6-24
在线时间
18 小时
 楼主| 发表于 2021-12-1 20:12:48 | 显示全部楼层
感谢大家的答复,经过排查问题,最后发现这个问题是两个问题合并起来的,问题1:SWD功能被屏蔽,问题2:系统晶振频率为25M,代码中设置的为8M,导致代码未能真正更新进去,运行不了。 解决方法很简单,第一步把程序的时钟改成25M,参考博客https://www.cnblogs.com/qiyuexin/p/8410947.html;第二部就是把BOOT0拉高,把程序下载进去即可!困扰了好久
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 09:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表