DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版
我的程序里面的STLINK_2A/2B,都可以用于STLINKv2,有一个表格说明了区别,你可以试一试。
原STLINK使用两个GPIO引脚的,我的程序只用到其中的一个,不需要修改硬件。
大佬:) M) R0 e1 s3 y4 N8 @: {
程序下载到st-link中运行成功了。真的谢谢楼主。。
LED闪烁的情况:8 z3 S0 [% P C4 Z" Z5 X% E
void SysTick_Handler(void)
{4 \- R( k \$ n6 s
u8SysTick_Counter--;2 ?" {2 c% h* j& l. S3 D
. b# X9 H- l4 P" U3 I2 \
//Connected LED
if (u8LedMode & 0x02) //Connected LED: 200ms on/off for CDC, fast
{0 {4 ]- V0 e) a
u8LedMode &= ~0x02; T' H6 s; ^$ W( ?& u
if (u8SysTick_Counter & 0x01) {
LedConnectedOn();
}
else
LedConnectedOff();
}0 b) _5 R! @4 t/ a; D
else$ |; e D7 B# S6 u) O6 R
{ 1 m' h4 j* O# z2 c% f1 h
if ((u8SysTick_Counter & 0x07) == 0) //Connected LED: 200ms on, 1400ms off, slower
LedConnectedOn();4 ] t0 H1 z- [; A' b
else: w2 _9 A7 ]8 g$ \* O8 K; p4 R
LedConnectedOff(); [2 r( r2 Q8 A3 b% L$ c6 @: s
}
# d: y2 Y! P" l# `' f
//Running LED* d6 A k7 b# ]7 v. Z0 w6 ^* x' u
if (u8LedMode & 0x01) //Running LED: 200ms on, 600ms off
{- O5 x, g& ~) B' o# X% A" k
if ((u8SysTick_Counter & 0x01) == 0)
LedRunningOn();+ [7 D" g+ E! F. [5 e
else N- n! L, y' b* B+ O U
LedRunningOff();' o7 _6 e2 |! F
}/ E, W6 m* A x
}: D1 H( n7 _& P5 N: `
下载程序时,LED无法快闪??LedRunningOn和LedConnectedOn都是使用PA9引脚
正常,下载程序的时候,没有做特殊处理。; d! a& @4 ^/ O
UART有数据传送的时候是快闪,并且还不在debug模式下。
好的,谢谢楼主。。。。。( f( |# L( f$ h) a
我看看能不能改先....
pa2和pa3,调音台是雅马哈自主芯片,和单片机完全没有关系,为什么cdc能用。
因为我们这个CDC(准确的说法应该是叫做VCP)就是一个USB转UART的连接线。1 F7 R+ c. i. a+ |: ~2 ^0 Q/ v/ q
虽然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库文件的里面吧,没有源码可以跟踪。
好的,谢谢楼主的回复.
进入Debug模式以后,PC13的LED,常亮是Running,闪动是暂停。
PB7--PB3的SWO线接上没有,用我的测试程序。