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

【源代码】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
& e1 d* V/ A6 l) n4 A) k5 Y楼主你好!为何下载的软件复位固件没法用?芯片型号是stm32f103rbt6,对应的引脚定义为PB14->SWDIO,PB13-> ...

9 p% ?9 ?- X4 ~1 p0 U不好意思,今天刚刚看到,您的问题解决了吗。
lzhang97 回答时间:2020-7-21 22:20:20
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3,程序怎么修改可以使用uart3啊
radio2radio 回答时间:2020-7-21 23:26:47
SUSTZL 发表于 2020-7-21 22:20) f& l) b8 H8 x
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3 ...

' r3 b! s# k' E3 `' o这个似乎不难,利用全局查找私有代码,将所有UART2 / USART2相关的代码,改成UART3 / USART3试一试。
tdmn3374 回答时间:2020-7-29 17:04:04
好东西,感谢分享
拜仁主将 回答时间:2020-8-10 16:07:19
搞定了
" J% G: e- [  C, {; Y- }( s5 z
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引脚图:8 C# s' L$ Z8 }! i
PZDAP.png
! V% ^) j2 n: c1 u. u; \) I$ D改动的代码:
, B+ r2 n6 Q1 Z( C8 W- vDAP_Config.h:
1 H9 E, N% `9 c' x#define SWO_UART                0
; e9 k( S; V/ Q2 y! a) ?( a5 u
! s& b" `$ N: Q9 ]#define USART_CDC_CLOCK(state)      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, state)6 N& `2 j0 u$ m
#define USART_CDC_GPIO_CLOCK(state) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, state)( M- O! m9 [, G) s5 {
#define USART_CDC_REMAP()           /* GPIO_PinRemapConfig(..., ENABLE) */" c& s; ^( p) W' E* M
1 H" k6 V* R# L/ e8 o
#define USART_CDC_PORT        1     //USART1
# O" ?* c* Q$ m$ ~: j8 X: z#define USART_CDC_GPIO        GPIOA
, L: }. s2 L5 H5 K#define USART_CDC_TX_PIN_MASK GPIO_Pin_9# h/ F9 Q5 S4 m! U6 g9 ~& y
#define USART_CDC_RX_PIN_MASK GPIO_Pin_10# G2 h$ U$ p' l9 ]
#define USART_CDC_IRQn        USART1_IRQn
4 w0 [0 J/ A' x$ m) @#define USART_CDC_IRQHandler  USART1_IRQHandler
/ D' g- Z, N+ k0 Z2 G2 b#define USART_CDC_BUFFER_SIZE (1024)  /*  Size of Receive and Transmit buffers MUST BE 2^n */1 W" b$ |9 G; M  ^9 i; i$ ^
8 c% G6 @0 G: S# V7 Q% [# v3 `
" ?$ C0 m) L. I$ T8 `; t. a3 A" `$ x
#define PIN_USB_CONNECT_RCC   RCC_APB2ENR_IOPAEN) C4 o' l# r9 H* y
#define PIN_USB_CONNECT_PORT  GPIOA
5 F+ J: Z7 v$ K& h# O. T#define PIN_USB_CONNECT_PIN   8
3 ]# \, V+ ^. @% p! T; Z
$ |/ \6 C$ D+ r2 b, U! c- d0 r5 S2 c
// TDI Pin (output)
* P( H6 y) v& @0 a8 n#define PIN_TDI_PORT        GPIOA
8 i$ Q' t2 [  p& h' e0 A3 |: x#define PIN_TDI_PIN         7) U4 k) u8 T" q# j3 k5 t
# Q* h5 S  @* J' T" @1 ]  o! e* |! z
// SWDIO/TMS Pin
3 r/ d' ^% t7 b) q#define PIN_SWDIO_TMS_PORT  GPIOA
0 [& Z$ ^) k9 w7 Q9 T#define PIN_SWDIO_TMS_PIN   1
9 k# }& l6 {( Y" y8 M( h6 |& \$ u/ _1 m. |$ P. u
// SWCLK/TCK Pin
; I" ], w1 u5 `. m/ c! y#define PIN_SWCLK_TCK_PORT  GPIOA, b; u% m1 r6 l8 ^7 u" q" @
#define PIN_SWCLK_TCK_PIN   59 n7 ~8 x1 v5 a/ X
0 ]$ v* G- {, W4 @
// TDO/SWO Pin (input)              //remap USART1_Rx_Pin to PB7 for SWO; @/ m$ |9 Y* m1 p. i! \
#define PIN_TDO_PORT        GPIOB3 d% |( W  A  x+ c
#define PIN_TDO_PIN         71 _9 Q* g& T. ?4 l
" p2 m5 i( R5 X: {) d
// nRESET Pin8 _! F# C( a9 l, W( x! E
#define PIN_nRESET_PORT     GPIOB
8 F) P6 Z; t- o  a+ h#define PIN_nRESET_PIN      0; z8 G, x8 e. Z0 J/ E3 u
- b4 P4 S+ r6 b6 ~' d$ H5 q  Q
radio2radio 回答时间:2020-9-21 21:23:03
aogetuya 发表于 2020-8-17 21:00
3 a4 P) C  k: C* H7 k6 `& [大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?

1 Z* V( q( l9 n1 _+ e: x1 F& Q因为串口1的Rx线被SWO/TDO占用了。
radio2radio 回答时间:2020-9-21 21:40:10
versenkt 发表于 2020-9-19 16:27) O) E0 l, H6 S, P  N
LZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CO ...

2 ~7 C, I, C+ c8 a: T这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。7 d  j& C( \) m5 i" c7 i
/ S! ~+ G0 s) L( [
由于SWO/TDO的引脚PB7,使用了USART1的Rx线的功能,您要改动VCP使用USART1,就要把SWO/TDO搬到USART2的Rx线去,或者禁止SWO和JTAG功能。 需要改动的地方比较多。* p# ]! C+ j2 H; P
# t* X7 Q1 f- R
如果,不想麻烦,建议另买一块Bluepill小板(研究源码),或者STLINKv2的山寨仿真器刷DAP(这个实用),都是十多元钱事儿。
; V* K1 O4 @, L: g0 r" D
versenkt 回答时间:2020-9-23 08:11:40
radio2radio 发表于 2020-9-21 21:40/ w, d( C# p, x$ O* [" K9 R
这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。
* i: A( Y4 q' W" C& f* \# F
. z0 f, l: O$ b4 Q8 y由于SWO/TDO的引脚PB7,使用 ...
3 w% p* b! Z& K  E9 `+ |+ u; X
好的,我再研究下,谢谢回复,主要是想废物利用下
laobiaixng 回答时间:2020-10-7 11:26:06
不错,正好手上有块核心板,做个DAP试试。
kaide 回答时间:2020-11-5 13:52:48
radio2radio 发表于 2018-10-14 02:01
# ~; }+ x3 M1 [% q  h不好意思,今天才看到,匆匆做了一个,您先试一试。可能问题多多。
) U/ s& ~. h% L9 K3 ^2 U; t6 Y5 ~$ t' {' [( _/ [, {6 \
我是用BOARD_V1的环境改出来的,发现 ...

- q$ O+ ]* j( L+ X3 m" D: _大佬,是我的板子芯片问题吗,我用好的DAPLINK给这个蓝色板子刷了好几个DAPlin固件都是不能在KEIL中识别到,但是电脑可以显示出U盘,和硬件管理那可以显示出串口,可以用疮口下载,就是不能在keil中识别,买了两块最小系统板板子都不能识别,有一个板子还是在优信买的。折腾了好久都没成功,怀疑是不是芯片问题
wth_arm 回答时间:2020-11-13 15:46:19
各位大吓,那一个版本的代码可以在UV4下编程使用,我用V2.0的链接出错。求大吓指点迷津

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版