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

【源代码】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
5 {- h% t- V7 D( l3 w" I0 H楼主你好!为何下载的软件复位固件没法用?芯片型号是stm32f103rbt6,对应的引脚定义为PB14->SWDIO,PB13-> ...
/ v+ @$ A/ k% ~9 j; Z& Y& L$ J
不好意思,今天刚刚看到,您的问题解决了吗。
lzhang97 回答时间:2020-7-21 22:20:20
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3,程序怎么修改可以使用uart3啊
radio2radio 回答时间:2020-7-21 23:26:47
SUSTZL 发表于 2020-7-21 22:203 p: [  b' `2 u! F5 S; G
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3 ...

) V6 k8 D5 Z; m  d这个似乎不难,利用全局查找私有代码,将所有UART2 / USART2相关的代码,改成UART3 / USART3试一试。
tdmn3374 回答时间:2020-7-29 17:04:04
好东西,感谢分享
拜仁主将 回答时间:2020-8-10 16:07:19
搞定了/ J* ^- w+ N! C/ F
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引脚图:! l# t- K4 K; z  ?* S; `
PZDAP.png ! u! d' s0 F# }9 F# S0 z' M4 D
改动的代码:" t; Z0 M; t$ ^5 q/ ?
DAP_Config.h:
. {# r4 Z' C+ v% M( I7 I. M. W#define SWO_UART                0/ l& Y! g9 k$ z. T: U* s% _0 t

; [# j3 X* D* G0 w5 H- @#define USART_CDC_CLOCK(state)      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, state)
+ n' j; @+ a) p! B/ K/ X#define USART_CDC_GPIO_CLOCK(state) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, state)4 t) m5 O) w; u$ u+ x9 X3 j1 v2 J
#define USART_CDC_REMAP()           /* GPIO_PinRemapConfig(..., ENABLE) */
1 A8 k! O# V+ ~5 v  z- q1 s
4 {2 @' K1 m( R5 p#define USART_CDC_PORT        1     //USART1
' U8 a+ i; B' P1 Q0 g: }3 f#define USART_CDC_GPIO        GPIOA
. P' s  _" {( \! C2 ?# b" u#define USART_CDC_TX_PIN_MASK GPIO_Pin_97 h5 ~9 T. N9 m! Q* w1 A
#define USART_CDC_RX_PIN_MASK GPIO_Pin_10
# A% j$ V' s# z#define USART_CDC_IRQn        USART1_IRQn5 L' P- a! T8 v& X
#define USART_CDC_IRQHandler  USART1_IRQHandler8 O3 q7 h0 g  m2 E  i" r% B1 m
#define USART_CDC_BUFFER_SIZE (1024)  /*  Size of Receive and Transmit buffers MUST BE 2^n */+ A! R, p1 t7 x) }

9 u* H: ?( n8 Z8 K3 N8 i5 M5 B( r4 j- e& C$ _
#define PIN_USB_CONNECT_RCC   RCC_APB2ENR_IOPAEN
: S" k: i6 e7 x0 X' @$ U& p( V% W1 [#define PIN_USB_CONNECT_PORT  GPIOA4 ~+ i$ e' A& Q9 @. P9 t
#define PIN_USB_CONNECT_PIN   81 N7 P) [4 }2 j& K  s8 Q

5 \8 x+ y- m; j$ @' L* V# R3 ]0 U2 K# Z
// TDI Pin (output)
3 n5 N0 Z! N  K; E0 z#define PIN_TDI_PORT        GPIOA  L0 O# d+ F. k* z# A5 ?/ B
#define PIN_TDI_PIN         7
5 m0 x; m: A8 ~
- u5 Y2 c4 Y  Y// SWDIO/TMS Pin) ^  |& k* a: o# c+ m
#define PIN_SWDIO_TMS_PORT  GPIOA2 G+ o% H- h9 [) @
#define PIN_SWDIO_TMS_PIN   16 W2 p' X2 C+ A0 n

" `3 X3 s" b" A6 h9 `, d// SWCLK/TCK Pin
. }$ o$ |* c9 ]+ `0 J7 `+ h/ y7 s#define PIN_SWCLK_TCK_PORT  GPIOA
! |$ x& Y' {$ @) h% i! w% w#define PIN_SWCLK_TCK_PIN   5
' H# H) k/ s. T6 h9 g  I, v) O* `7 Y+ U% }: n, O
// TDO/SWO Pin (input)              //remap USART1_Rx_Pin to PB7 for SWO
8 [; m8 Z3 D9 D#define PIN_TDO_PORT        GPIOB
4 |% a- s, A3 p, O* i! L#define PIN_TDO_PIN         7; W% @- R( h' j* R& J+ D- d
% f9 O1 K8 b: v9 s
// nRESET Pin
, ~/ a8 A& J. [+ `8 o2 q0 N  p#define PIN_nRESET_PORT     GPIOB
% J: I& Y* K- ~#define PIN_nRESET_PIN      0
0 V( u. x' q3 X
; ]7 C' m& |2 c
radio2radio 回答时间:2020-9-21 21:23:03
aogetuya 发表于 2020-8-17 21:00
! M: v( J0 v; k) c  O大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?

2 d9 ^5 Y) ]  C4 Y% G. e' p  T因为串口1的Rx线被SWO/TDO占用了。
radio2radio 回答时间:2020-9-21 21:40:10
versenkt 发表于 2020-9-19 16:27
' L* z, B9 z: ?) U9 zLZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CO ...

3 s, ^" t5 r8 [0 x. M; R! L这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。
$ q$ x1 Z, }- f( c6 m* D. f
, |3 H6 H0 |! W! h由于SWO/TDO的引脚PB7,使用了USART1的Rx线的功能,您要改动VCP使用USART1,就要把SWO/TDO搬到USART2的Rx线去,或者禁止SWO和JTAG功能。 需要改动的地方比较多。" e! ^! B$ I* U& a* B2 z

! a. c! N& t6 h3 J, T- L% [如果,不想麻烦,建议另买一块Bluepill小板(研究源码),或者STLINKv2的山寨仿真器刷DAP(这个实用),都是十多元钱事儿。* v9 t5 g. U0 `
versenkt 回答时间:2020-9-23 08:11:40
radio2radio 发表于 2020-9-21 21:40
: B+ ^7 t% o/ |9 a7 N这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。
9 V2 o  I" _1 c# m( ?! _, \# ^9 t+ H/ L8 R0 F
由于SWO/TDO的引脚PB7,使用 ...
0 d, `& ^5 f# w. o9 I
好的,我再研究下,谢谢回复,主要是想废物利用下
laobiaixng 回答时间:2020-10-7 11:26:06
不错,正好手上有块核心板,做个DAP试试。
kaide 回答时间:2020-11-5 13:52:48
radio2radio 发表于 2018-10-14 02:01" K& ?; [7 j* {
不好意思,今天才看到,匆匆做了一个,您先试一试。可能问题多多。
1 B8 |! o5 Z8 P; Y4 Z/ Z9 K7 C0 r7 U/ Z6 w
我是用BOARD_V1的环境改出来的,发现 ...
3 K  E9 V" ^& s1 s- c$ G5 Z2 X
大佬,是我的板子芯片问题吗,我用好的DAPLINK给这个蓝色板子刷了好几个DAPlin固件都是不能在KEIL中识别到,但是电脑可以显示出U盘,和硬件管理那可以显示出串口,可以用疮口下载,就是不能在keil中识别,买了两块最小系统板板子都不能识别,有一个板子还是在优信买的。折腾了好久都没成功,怀疑是不是芯片问题
wth_arm 回答时间:2020-11-13 15:46:19
各位大吓,那一个版本的代码可以在UV4下编程使用,我用V2.0的链接出错。求大吓指点迷津

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版