微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 入门教程 win10平台STM32CubeMX+MDK5开发环境搭建+跑马灯程序的实现(多图 慎入!)

入门教程 win10平台STM32CubeMX+MDK5开发环境搭建+跑马灯程序的实现(多图 慎入!)

时间:10-02 整理:3721RD 点击:

Win10平台 STM32CubeMX+MDK5 开发环境搭建

一、 软件的下载与安装
首先下载好需要的安装包


这些文件我都整理在云盘里了,需要的下载(教程的Word版也在里面)
地址:http://pan.baidu.com/s/1i5fpuOP

1. STM32CubeMX的运行需要java环境,所以需要先安装jre从云盘下载下来之后就可以直接安装了。(可以更改安装路径)



点击“下一步”就开始安装,直到安装完成。
这样,java运行环境就已将配置好了,下面就可以安装STM32CuMX了。
2. 安装STM32CubeMX
完成上一步之后,这一步就很简单了,什么也不需要更改,一路NEXT就可以了。(中间也可以更改安装路径!)
安装完之后,桌面上就会生成一个软件的快捷方式

双击打开
安装完成之后还需要下载与芯片相对应的库,过程如下:
2.1 打开Help菜单下的Install New Libraries选项


选中需要的平台版本,打勾,点击Install Now。等待下载完成(网有点慢!)



3.趁这个时间安装MDK5

同样一路NEXT就行(同样可以自己更改安装路径),遇到下面这个界面,随便填就行!



最后还要破解。
以管理员身份打开Keil软件。
点击File菜单下的License Management


打开License Management选项卡,复制CID


打开破解软件,(不用管理员模式)
Target选中ARM,把刚才复制的CID粘贴到对应的CID输入框里面,点击Generate按钮
把生成的序列号复制下来(Ctrl+C)


粘贴到下图中的位置,点击Add LIC


激活成功!

对于keil5来说,还要安装需要的库,双击同一文件夹下的Keil.STM32F1xx_DFP.1.0.5.pack自动安装
最后还要检查一下更新把最新的F4的库安装上。(这一步可以不做,后面打开用STM32CubeMX生成的工程的时候,会自动提示安装!)


还有浮点运算的库。


STM32CubeMX的库文件下载完成之后,就可以进行工程的创建了。下面是下载完成后的图



二、工程的创建
我们用STM32CubeMX来进行工程的创建,与各种寄存器的的初始化。
打开STM32CubeMX软件,点击New Project。
弹出下面的界面,可以按芯片选择,也可以按板子型号选择


我是按板子型号选择的。


点击OK
等一会会出现下面的界面,左面是外设的配置,右面那个图直接把所有的引脚都贴了出来,可以直接点击修改引脚的属性十分方便。


(由于是按板子型号选的,所以板子上的一些外设对应的IO口都已经设置好了,可以不用改,当然也可以再自己设置一遍)
先写一个跑马灯的程序,
设置对应的引脚为GPIO_Output模式,



然后配置时钟,点击上面的选项卡切换到时钟配置界面
直接在那个方框里输入需要的时钟频率,按下回车,软件就自动配置好了。


有时可能会出现输入的时钟不能实现的情况如(这个问题是我配置F103系列的芯片的时候发现的。如果是配置F4的工程可以忽略!)


可能是时钟源的选择有问题,在第一个选项卡Pinout里面的RCC配置不正确


这样的话,就能得到芯片的最大时钟频率了。

再后面的一个选型卡是详细配置的各个功能的,你可以点击GPIO那个按钮,具体的配置下每个IO的输入输出模式,高低电平等等。


再后面的就是功耗的设置了,我们一般也用不到,就不用动了(都这么说的。)

接下来就是生成MDK5的工程了
可以直接点击下面的那个图标生成工程,(由于是第一次生成工程,工程的属性都没有设置所以会弹出工程属性的设置界面)


也可以直接点击 project->Setting  设置好工程名,工程路径和IDE (我选的是MDK5)


后面的Code Generate选项卡勾选输出单独的.c/.h文件。


点击OK
点击这个图标生成工程文件(如果刚才是直接点击的这个图标进入的工程设置界面,现在就不用点了)

等一会就生成完成了



打开工程
直接编译是没有错误的。

再工程项目里找到main.c函数打开
其他的不用看,直接找到main函数里面包含三个函数


这就是STM32CubeMX对底层寄存器的初始化函数
我们打开那个GPIO的初始化函数看一下有没有把我们需要的端口配置好
光标放到那个函数上单击鼠标右键在弹出的快捷菜单上选择Go To Definition...如下图


这样就找到了MX_GPIO_Init() 函数发现里面两个与led灯对应的两个IO口都已经配置成了推挽输出模式了,就是这么简单!


相比较于用MDK5直接组建工程文件,不仅组建过程麻烦,还要比着说明文档找寄存器,写初始化函数,用STM32CubeMX构建工程就十分简单了。

下面在main函数里面添加以下代码,实现跑马灯的效果。


下面贴出修改后的main()函数。

  1. int main(void)
  2. {

  3.   /* USER CODE BEGIN 1 */

  4.   /* USER CODE END 1 */

  5.   /* MCU Configuration----------------------------------------------------------*/

  6.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  7.   HAL_Init();

  8.   /* Configure the system clock */
  9.   SystemClock_Config();

  10.   /* Initialize all configured peripherals */
  11.   MX_GPIO_Init();

  12.   /* USER CODE BEGIN 2 */
  13.         HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET);
  14.         HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_SET);
  15.   /* USER CODE END 2 */

  16.   /* Infinite loop */
  17.   /* USER CODE BEGIN WHILE */
  18.   while (1)
  19.   {
  20.   /* USER CODE END WHILE */
  21.                 HAL_GPIO_TogglePin(GPIOB, LD2_Pin|LD3_Pin);
  22.                 HAL_Delay(200);
  23.   /* USER CODE BEGIN 3 */

  24.   }
  25.   /* USER CODE END 3 */

  26. }

复制代码


要想下载到板子上运行还要安装STLink驱动,
将开发板用数据线连接到电脑上,解压下载好的ST-LINK官方驱动,双击对应的exe文件安装。


安装成功之后打开设备管理器发现有下面这个端口说明安装成功。(也可以不看,直接用Keil硬件仿真测试一下)


设置仿真选项为STLink(STM32CubeMX生成的工程默认都是STLink硬件仿真,如果没动过仿真选项的话不用改。)点击工程配置按钮


切换到Debug选项卡
看选中的是不是ST-Link,不是的话改过来。



点击keil软件的仿真按钮,进入硬件调试


进入仿真界面



就发现板子上的两个led就已经开始闪起来了。

第一次发帖,,,有什么错误欢迎回帖指正^o^



自己顶一下吧,,写这么长的帖子也不容易。

感谢小编无私分享!

不错不错。受益匪浅。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top