调试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_Disable SWJ 完全禁用(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);
第二:液晶12864 响应时间为200多us,所以对于STM32来说需要加延时,这是小问题。
第三:12864安装的时候没有看清楚,IO口装反了,不过结果还是能调背光,这点比较奇葩。呵呵,12864的管脚是对称的,VEE,VO正好对称。呵呵。以后一定注意。
第四:setonoff指令需要多打几次。。
第五:12864的RST管脚内部有上拉的,IO口最好使用OD模式,不然可能会一直复位。
-
Jink 与开发板的连接方式
JLINK的20针JTAG的1脚、20脚分别与开发板上JTAG口的1脚、20脚用杜邦线相连
JLINK的20针JTAG的7脚(JTMS)、9脚(JTCK)分别与开发上的JTAG口(JTAG 即SWDIO和SWCLK)的JTMS脚、JTCK脚用杜邦线相连。
【注】:此处GND最好接20脚。
2,MDK中调试和下载的设置
点该图,
如图所示,选cortex-M3-LINK
然后点settings
按照如图所示进行选中
接口interface 选用USB ,Port选为SW等。点OK
3,FLASH下载设置
点settings.点击ADD,把FLASH芯片添加进来
完成设置,点OK
编译连接,生成HEX文件
4打开J-FLASH软件
点菜单栏的FILE 点OPEN打开HEX文件,然后OPTIONS project settings 设置如图
1)General 选USB 2)TARGET接口选择SWD模式 3)CPU 选择开发板使用的CPU芯片 设置完毕
点菜单栏Target ,选择connect 连接,然后选erase chip 擦除芯片,然后选择program编程,最后application应用。板子开始运作。
转载请注明:徐自远的乱七八糟小站 » 调试笔记SWD模式下下载调试STM32程序的方法