Jlink V7在MDK下使用J-link/J-trace 模式开发STM32的说明
说句实话,STM32的官方程序库用起来真是有点麻烦,绕来绕去的,初学者很容易犯迷糊。求人不如靠自己啊,经过一晚上的摸索,终于自己在MDK开发环境下建立了自己的工程,走马灯也跑起来了,呵呵呵....
开发环境:STM32F103RB(128K Flash 20K RAM)+MDK3.40PRC+JLINK V7 0.驱动安装
安装Segger jlink V4.02驱动,
安装在c:\\Program Files\\SEGGER\\JLinkARM_V402
插上jlink V7,可自动安装上驱动。执行J-link command,查看版本。如果已经连上目标板,可显示目标处理器信息。
也可以使用mdk中的驱动,在c:\\keil\\ARM\\Segger\\USBdriver
1.建立MDK工程
(1)选择STM32F103RB 并加入STARTUP文件,这一步就不用细说了吧,用过keil的人都会。 (2)工程中选择Options for target ‘xxx’,选择器件STM32F103RB
(3) 配置Jlink:按照下图配置即可
时钟改成1MHz以上,也是可以的,比如2MHz,明显编程速度会快些。需要试验最高时钟速率。
这样,一个可以用Jlink调试的MDK工程就建立好了,接下来我们加入我们的C文件就可以开始调试了。
2 编写程序 C文件源码如下:
#define GPIOC_CRL (*((unsigned int *)(0x40011000))) #define GPIOC_BSRR (*((unsigned int *)(0x40011010))) #define GPIOC_BRR (*((unsigned int *)(0x40011014))) #define RCC_APB2ENR (*((unsigned int *)(0x40021018)))
void delay(void) {
unsigned int i;
for(i = 0; i < 0xffff; ++i) ; }
int main(void) { {
RCC_APB2ENR |=(1<<2); //使能PORTA时钟 GPIOA_CRL = 0x44444422;//PA0,1配置为输出 while(1) {
GPIOA_BSRR |= BIT0; GPIOA_BRR |= BIT0; delay();
GPIOA_BRR |= BIT0; GPIOA_BSRR |= BIT1; delay(); } }
如此,一个简单的走马灯程序就完成了,比起官方库,容易理解多了,呵呵