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

【源代码】STM32F103C8T6最小板搞定CMSIS-DAP和SWO功能  

[复制链接]
radio2radio 发布时间:2018-5-31 15:47
阅读主题, 点击返回1楼
1 收藏 45 评论418 发布时间:2018-5-31 15:47
418个回答
abcd44 回答时间:2020-6-17 19:44:08
楼主你好!  下载的带软复位功能的固件电脑识别不出来硬件怎么回事?芯片是stm32f103rbt6的,接口定义为PB14->SWDIO,PB13->SWCLK,PA9->对应双色LED,PA2->TX,PA3->RX,能否麻烦再留个固件呢?不胜感激
abcd44 回答时间:2020-6-17 19:50:16
楼主你好!为何下载的软件复位固件没法用?芯片型号是stm32f103rbt6,对应的引脚定义为PB14->SWDIO,PB13->SWCLK,PA9对应双色LED,PA2->TX,PA3->RX,麻烦楼主在留个固件,不胜感激!
radio2radio 回答时间:2020-7-10 22:14:03
abcd44 发表于 2020-6-17 19:50
' l+ @0 V3 |+ M- l楼主你好!为何下载的软件复位固件没法用?芯片型号是stm32f103rbt6,对应的引脚定义为PB14->SWDIO,PB13-> ...
6 M7 v6 Q1 z/ {9 K! F- ?, e: w
不好意思,今天刚刚看到,您的问题解决了吗。
lzhang97 回答时间:2020-7-21 22:20:20
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3,程序怎么修改可以使用uart3啊
radio2radio 回答时间:2020-7-21 23:26:47
SUSTZL 发表于 2020-7-21 22:20
3 w; [8 O0 E" f/ d0 Z0 O大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3 ...
3 S. N) x3 a# ~4 |8 }
这个似乎不难,利用全局查找私有代码,将所有UART2 / USART2相关的代码,改成UART3 / USART3试一试。
tdmn3374 回答时间:2020-7-29 17:04:04
好东西,感谢分享
拜仁主将 回答时间:2020-8-10 16:07:19
搞定了) q* `5 j7 ]# G  {9 x. O
aogetuya 回答时间:2020-8-17 21:00:29
大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?
versenkt 回答时间:2020-9-19 16:27:37
LZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CONFIG.H,现在SWD正常,PC也能识别出VCP,但是没办法正常收发。 串口工具发几条就会死掉,RXTX短上也没有数据。串口应该是没问题的,给它刷固件就用的flash loader demo 串口刷的。是还要改动什么地方吗?测出来的MCU引脚图:
( r% G" u& b1 F PZDAP.png   D( J% e5 R6 N% J
改动的代码:
$ P- a( X' L6 a- J4 }DAP_Config.h:
4 ?( m& v2 `( k- C6 n#define SWO_UART                0
! V4 W! K5 f5 T4 Q9 |9 n+ K! u1 I; E0 l7 a
#define USART_CDC_CLOCK(state)      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, state)6 M3 h3 j- ~+ c4 R
#define USART_CDC_GPIO_CLOCK(state) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, state)- O6 I9 e" L' o, r9 a. s$ C0 ]$ H
#define USART_CDC_REMAP()           /* GPIO_PinRemapConfig(..., ENABLE) */
* s+ F( A/ r. g+ U: A5 C* j; c1 o3 j. S$ w: x
#define USART_CDC_PORT        1     //USART1
  E+ t9 d; ^8 J4 ?! w: V#define USART_CDC_GPIO        GPIOA
" N5 }/ _! d7 U: \) [. ~  S#define USART_CDC_TX_PIN_MASK GPIO_Pin_99 M0 S8 U' q- F$ p
#define USART_CDC_RX_PIN_MASK GPIO_Pin_10- u) l4 f1 Z. q( b4 {. E
#define USART_CDC_IRQn        USART1_IRQn
0 D" F: j1 U( m  D' U; W7 k0 L% ~#define USART_CDC_IRQHandler  USART1_IRQHandler
; b# O  W  L% r  O$ o0 ?#define USART_CDC_BUFFER_SIZE (1024)  /*  Size of Receive and Transmit buffers MUST BE 2^n */
0 X/ z& s: o& o) f% a8 L% ~/ `( S7 K

# R6 ^3 b, w- O. }: a#define PIN_USB_CONNECT_RCC   RCC_APB2ENR_IOPAEN6 z" x6 u2 H) X/ D* p* l& V
#define PIN_USB_CONNECT_PORT  GPIOA
9 d, L2 k( `5 Z3 B- [#define PIN_USB_CONNECT_PIN   8
0 ~6 M+ x* ^7 w: o* r# B6 J8 U) Z( ^5 T$ G  s

' m. ^" g4 O8 N: B+ q// TDI Pin (output)
6 i6 j; ^7 ?2 e2 }" i, l4 r: A9 L#define PIN_TDI_PORT        GPIOA
9 w% R" V4 H; w#define PIN_TDI_PIN         7
0 |! j+ C( x( z& o6 q7 I  n' r9 Y' X3 {* m
3 E& t3 d* i! S# u1 x// SWDIO/TMS Pin8 n  W& S" N- m; z: N/ \+ |
#define PIN_SWDIO_TMS_PORT  GPIOA" l0 K) I: ~( y( ?# B
#define PIN_SWDIO_TMS_PIN   1* I+ t7 {$ I6 K" f6 d0 x/ q
1 F/ i: {# u- [6 ^0 }
// SWCLK/TCK Pin
" W9 X) P0 c$ {7 Q7 D- o! v#define PIN_SWCLK_TCK_PORT  GPIOA
) g( @! b3 Z9 w#define PIN_SWCLK_TCK_PIN   5
( Q  i4 j4 A% j) {) |! [% Y% L% a- g; i/ w3 |8 Y5 d
// TDO/SWO Pin (input)              //remap USART1_Rx_Pin to PB7 for SWO
3 i* X2 G4 j& j: \# Q#define PIN_TDO_PORT        GPIOB
7 A! h2 y& n; c+ |9 j3 k#define PIN_TDO_PIN         7
5 ?  L' \9 w; X# n9 M2 j* o- l9 L0 _9 H4 N
// nRESET Pin
3 p% @. ?1 J6 |# n8 N#define PIN_nRESET_PORT     GPIOB6 K* e) I% T( l: }2 B" O7 d: ?- |
#define PIN_nRESET_PIN      01 p/ W5 W6 u4 m, m  a

  M- }( j  C. H! S& g8 _
radio2radio 回答时间:2020-9-21 21:23:03
aogetuya 发表于 2020-8-17 21:00
3 T% U, P* L+ ?) T/ q( N0 @4 S$ j大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?

6 }+ c0 s( x2 m+ x# u2 l因为串口1的Rx线被SWO/TDO占用了。
radio2radio 回答时间:2020-9-21 21:40:10
versenkt 发表于 2020-9-19 16:27' m: K7 y: M+ d, D7 c
LZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CO ...
6 x2 L3 B- R! p; w% W$ U
这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。& L( {0 a+ a2 i, X. e
+ ?1 N) v' E/ b, H
由于SWO/TDO的引脚PB7,使用了USART1的Rx线的功能,您要改动VCP使用USART1,就要把SWO/TDO搬到USART2的Rx线去,或者禁止SWO和JTAG功能。 需要改动的地方比较多。- O5 t2 Q" Q5 F0 y0 _9 R! S1 t3 q

8 ^# M1 \0 E4 M* a7 P$ O- r( D如果,不想麻烦,建议另买一块Bluepill小板(研究源码),或者STLINKv2的山寨仿真器刷DAP(这个实用),都是十多元钱事儿。7 Y4 f2 k- @' r0 R7 R9 x$ m
versenkt 回答时间:2020-9-23 08:11:40
radio2radio 发表于 2020-9-21 21:40* ?, q+ L0 H: m2 a% ]1 k, t1 y
这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。
" G; D+ F4 l; b- I1 b: \& a" t2 A, h
% o% @" F9 U5 A- `+ i1 G  L由于SWO/TDO的引脚PB7,使用 ...
7 b& J& K) \: q, v+ Z7 H; q* W
好的,我再研究下,谢谢回复,主要是想废物利用下
laobiaixng 回答时间:2020-10-7 11:26:06
不错,正好手上有块核心板,做个DAP试试。
kaide 回答时间:2020-11-5 13:52:48
radio2radio 发表于 2018-10-14 02:01
* w9 K/ j& H; _3 P6 V* a不好意思,今天才看到,匆匆做了一个,您先试一试。可能问题多多。' B$ h: w' |8 |- R& N
# d6 w; w, L. W
我是用BOARD_V1的环境改出来的,发现 ...

. |. ?$ Y% m" ]6 o" x大佬,是我的板子芯片问题吗,我用好的DAPLINK给这个蓝色板子刷了好几个DAPlin固件都是不能在KEIL中识别到,但是电脑可以显示出U盘,和硬件管理那可以显示出串口,可以用疮口下载,就是不能在keil中识别,买了两块最小系统板板子都不能识别,有一个板子还是在优信买的。折腾了好久都没成功,怀疑是不是芯片问题
wth_arm 回答时间:2020-11-13 15:46:19
各位大吓,那一个版本的代码可以在UV4下编程使用,我用V2.0的链接出错。求大吓指点迷津
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版