OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 34240|回复: 9

MDK5 Manage Run-time Enviroment 使用

[复制链接]

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-11-11
在线时间
2 小时
发表于 2014-11-16 19:56:22 | 显示全部楼层 |阅读模式
前几天弄了块探索者STM32F4的板子,新板子马上就运行MDK5弄个工程下载一下咯,先弄个简单的,就拿原子光碟的LED跑马灯的例子,加载工程,编译,报错,少了core_cm_Instr.h,直接从光碟的stm32 lib4.0找到并拷贝到Core目录即可。运行成功,但是发现只有LED1闪,后来发现LED2坏的,自己DIY了个绿色的LED。然后看了下原子的STM32F4开发指南-库函数版本,然后按照步骤操作了一遍建立工程,当然最快的方法就是用原子的模板了。

MDK5 装了很久,之前只是研究了下例子,发现MDK5和以前版本使用和以前的版本有点区别,以前建工程,需要拷贝各种库。MDK5简单多了,以原子的跑马灯为例子:
1.建立一个新的工程,选择Device是stm32F407ZGTx确定即可。
2.建立App组,加入刚才原子刚才跑马灯工程的led.c,led.h,delay.c,delay.h,main.c。
3.先别忙着编译,点击Manage Run-time Enviroment 按钮,

,选择需要的运行环境,注意:绿色才是有效的。我的电脑上的software packages 都是最新的了,版本上图有对应的版本号,大家参考。
4.改delay.c文件,原本件都是原子的stm32F4光碟中的库函数例程,加上#include "stm32f4xx_hal_conf.h", 注意,就是要把LED_Init()函数中的
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); 注释掉,添加HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
5.改led.c文件,源文件如下
void LED_Init(void)
{      
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOF, &GPIO_InitStructure)
  GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);
}
修改为:
void LED_Init(void)
{      
  GPIO_InitTypeDef  GPIO_InitStructure;
__GPIOF_CLK_ENABLE() ;
  GPIO_InitStructure.Pin = GPIO_PIN_9 | GPIO_PIN_10;
  GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStructure.Pull = GPIO_PULLUP;
  GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
  HAL_GPIO_Init(GPIOF, &GPIO_InitStructure);
  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9 | GPIO_PIN_10,GPIO_PIN_RESET);
}
6.修改main.c,源文件如下:
int main(void)

   delay_init(168);    
   LED_Init();          
  while(1)
  {
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);  
    GPIO_SetBits(GPIOF,GPIO_Pin_10);   
    delay_ms(500);       
    GPIO_SetBits(GPIOF,GPIO_Pin_9);    
   GPIO_ResetBits(GPIOF,GPIO_Pin_10);
   delay_ms(500);                     
  }
}
修改为:
int main(void)
{
delay_init(168); 
LED_Init();
  while(1)
  {
    HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET);  
    HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET);  
    delay_ms(500);      
     HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET);    
     HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); 
     delay_ms(500);                    
  }
}
6.编译,下载,效果和原子的例程效果一样。
7.最终个工程树如图

 ,修改的地方是因为库的版本不同(这个不太清楚,但是函数名称,头文件的注释的版本确实和原子例程文件的版本不同,如果相同,估计不需要修改,只需要加上#include "stm32f4xx_hal_conf.h"即可,整个工程文件少了很多,干净了很多,以前刚学习的时候,网上下的例子,里面一大堆文件,也不知道哪些有用,哪些没有用,有些人还直接修改了标准库,让你查半天莫名其妙,MDK5帮助你简化了很多拷贝库的操作,库文件可以打开,而且只读,一直人为没必要修改标准库文件,若需要就自己重定义,并且建立在新的文件,并配上注释,否则是很不好的习惯。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-11-16 20:38:41 | 显示全部楼层
不错,谢谢分享。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-11-11
在线时间
2 小时
 楼主| 发表于 2014-11-16 20:48:33 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
才玩了半月多的stm32开发,以前单片机也就玩过51,还是20年前的事情,做新的产品,刚好公司做这方面开发的辞职了,好的程序员也不好找,没办法,骑驴找马,只能自己动手了,第一次发帖子,而且是后学,不好不对的,请指点。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-11-16 22:07:27 | 显示全部楼层
回复【3楼】破坏王:
---------------------------------
谢谢支持
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-11-17 14:06:30 | 显示全部楼层
新入手也好,不容易被以前的模式限制住,比如你现在就是用的,最新的功能。
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-11-11
在线时间
2 小时
 楼主| 发表于 2014-11-18 05:06:01 | 显示全部楼层
回复【5楼】styleno1:
---------------------------------
原子光碟里面的是:STM32F4xx DSP and Standard eripherals Library  
我现在MDK5里面的是:STM32CubeF4 Firmware ackage 1.3.0
STM32Cube Version 1.3 includes:
The STM32CubeMX, a graphical software configuration tool that allows to generate C initialization code using graphical wizards.
A comprehensive embedded software platform, delivered per series (such as STM32CubeF4 for STM32F4 series)
The STM32Cube HAL, an STM32 abstraction layer embedded software, ensuring maximized portability across STM32 portfolio
A consistent set of middleware components such as RTOS, USB, TCP/IP, Graphics
All embedded software utilities coming with a full set of examples

A graphical software configuration tool 是 STM32CubeF4的优势,而且middleware components很丰富,例子也很详细,就是文档资料太少了些,而且很多函数名称,包括宏定义都和以前的不同了。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-4-3
在线时间
8 小时
发表于 2015-7-2 10:54:55 | 显示全部楼层
刚好using MDK5 ,
感谢这个平台,感谢大家的阅览!
回复 支持 反对

使用道具 举报

5

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-2-6
在线时间
13 小时
发表于 2016-2-6 07:40:40 | 显示全部楼层
哈,我是多么喜欢用 IAR 呀,可残酷现实是 Keil 越来越好用了。吸引我里……
回复 支持 反对

使用道具 举报

0

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2016-2-5
在线时间
13 小时
发表于 2016-2-10 08:20:05 | 显示全部楼层
好贴,值得收藏,大家都顶
回复 支持 反对

使用道具 举报

10

主题

147

帖子

0

精华

高级会员

Rank: 4

积分
602
金钱
602
注册时间
2015-7-11
在线时间
94 小时
发表于 2017-3-2 14:59:18 | 显示全部楼层
请教个问题按照这种方式创建工程后,库文件放在了哪里,想修改某个参数,但找不到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-29 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表