首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SWD模式下下载调试STM32程序的方法

SWD模式下下载调试STM32程序的方法

调试GPS+GPRS模块。淘宝链接:用的是STM32F103RBT6主控芯片。因为手头12864多,所以没有买他的液晶。结果12864调了一天,做笔记,做笔记啊。呵呵。

第一:由于RBT6这款芯片没有完整的口,所以一开始我们用的时候没有注意,PCB中液晶使用了J-LINK的PB3,PB4端口,结果。。。。这两个口始终是高电平。搞了好久,只能用SWD模式。SWD模式只需要用两个口A13,A14,加上电源和地也只需要4线来进行调试。,呵呵方便啊,以后就用这个了。不然完整的J-LINK,需要至少8个口,做板子太麻烦了。
【注意1】:SWD模式下如果想使用PB3,PB4口,需要把他们重定义一下才行。调用IO配置里面的remap函数。
【注意2】:SWD模式下,J-LINK的GND最好接20脚,因为有的J-LINK右边一排GND不是都接上的。
【注意3】:SWD模式下,如果不接系统复位RST的话,也是可以的,但是注意,必须在keil中设置软件复位VECTRESET,,不过好像是用autodetect也是可以的。网上说不接这个有可能程序较大的时候会下载失败。

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_DisableSWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ,ENABLE);
// 改变指定管脚的映射GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3 | GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
继承事业,薪火相传
返回列表