楼主大大,我现在使用您的这个源码来做DAP成功. ' ^. i B: N. b. o' U1.现在我想更改引脚,我使用的代码版本是PA13,PA14作为仿真器的两个引脚,现在想要更改引脚.我去掉C/C++头文件里面的SWD_REMAP这个宏后修改PIN_SWDIO_TMS_PIN这个宏仍然会导致下载一次程序后就无法下载程序的现象,您知道是什么原因吗? ' T ^# v6 E" X' U* b: _2.请问usbd_init(); usbd_connect(__TRUE);这两句没办法跳到函数定义处,请问这是调用哪里的?
多串口VCP,我没有试过。
楼主,这几天在看你的程序,现在才发现有一个STLINK_V2A的程序。那这个程序是不是能适用于ST-LINK/v2下载器(就是在正点原子买的那个白色的下载器)??引脚都是一样的吗??我看那个ST-LINK原理图的T_JTCK分别有两个引脚接入(PA5、PB13)??T_SWDIO_IN和T_JTMS串联了一个100R电阻??
我的程序里面的STLINK_2A/2B,都可以用于STLINKv2,有一个表格说明了区别,你可以试一试。
原STLINK使用两个GPIO引脚的,我的程序只用到其中的一个,不需要修改硬件。
大佬:, J: m4 x5 L. z4 w$ L. J
程序下载到st-link中运行成功了。真的谢谢楼主。。( a; V2 p& e3 ^, J9 C) i* v
LED闪烁的情况:, I" [1 i4 b0 L
void SysTick_Handler(void)
{3 M% s+ |5 k$ R4 z
u8SysTick_Counter--;
//Connected LED9 u. z0 N4 y2 f5 l! y& F
if (u8LedMode & 0x02) //Connected LED: 200ms on/off for CDC, fast$ z8 C! Z" D9 \* B2 _+ l6 _$ `
{
u8LedMode &= ~0x02;
+ x! _; x- b$ {+ f
if (u8SysTick_Counter & 0x01) {3 s+ k- L! Y+ g8 W+ w3 ~6 B
LedConnectedOn();$ W, b8 `' I- I. i6 R
}/ U# [, F8 i+ l Z! \2 E
else. G3 p% m. P* D j& Z. d I7 _4 w: z
LedConnectedOff();
}: z: ^6 {4 {; Z$ u2 A0 T
else h9 m% w! f- T9 U7 @0 R: O
{ , ^9 L$ }+ b- o# x0 L$ {
if ((u8SysTick_Counter & 0x07) == 0) //Connected LED: 200ms on, 1400ms off, slower' d2 ?. I1 Q" ?( w0 M! O+ X
LedConnectedOn();
else, ?, `( E$ Z* \/ N0 P p; Y4 o
LedConnectedOff();
}
//Running LED$ O5 J& ]* ^: o9 L/ F
if (u8LedMode & 0x01) //Running LED: 200ms on, 600ms off$ Y* |$ j9 G! M& ^. d3 S' p% G
{
if ((u8SysTick_Counter & 0x01) == 0)# E/ `' {; P' g
LedRunningOn();
else5 I( q7 a' Z" t4 E8 E/ r$ I
LedRunningOff();
}( \' l) u0 o5 }$ n
}0 R/ |3 I; u& t$ b `' I& I
下载程序时,LED无法快闪??LedRunningOn和LedConnectedOn都是使用PA9引脚
正常,下载程序的时候,没有做特殊处理。
UART有数据传送的时候是快闪,并且还不在debug模式下。
好的,谢谢楼主。。。。。
我看看能不能改先....
pa2和pa3,调音台是雅马哈自主芯片,和单片机完全没有关系,为什么cdc能用。
因为我们这个CDC(准确的说法应该是叫做VCP)就是一个USB转UART的连接线。! L/ U1 i. [* n5 x* w% i
虽然CDC和DAP是由同一片MCU(STM32F103C8T6)实现的两个功能,走的是同一个USB口,但是这两个功能是完全独立的。可以单独使用。 你只连接PA2/PA3时,就可以单独使用其CDC(USB-UART)的功能。
因为USB库和VCP要使用ARM的RTE环境和Keil5+Keil4兼容包,那些文件是Keil下面自带的,所以不能用VisualStudio来编译。
1.现在我想更改引脚,我使用的代码版本是PA13,PA14作为仿真器的两个引脚,现在想要更改引脚.我去掉C/C++头文件里面的SWD_REMAP这个宏后修改PIN_SWDIO_TMS_PIN这个宏仍然会导致下载一次程序后就无法下载程序的现象,您知道是什么原因吗?
2.请问usbd_init(); usbd_connect(__TRUE);这两句没办法跳到函数定义处,请问这是调用哪里的?
1. 全局搜索SWD_REMAP,它是重定义SWD的GPIO,看看什么地方没有照顾到的。
2. 应该是在USB_CM3.lib库文件的里面吧,没有源码可以跟踪。
好的,谢谢楼主的回复.