本帖最后由 会敲键盘的猪 于 2016-12-8 12:17 编辑
在点亮LED之前,首先介绍下STM32Cube™。摘一段官网的介绍:With STM32Cube™, STMicroelectronics provides a comprehensive software tool, significantly reducing development efforts, time and cost. 意法半导体提供了一个全面的软件工具,显著减少开发流程,时间和成本,这一个软件工具包括STM32CubeMX和配套的软件驱动。STM32CubeMX是一个软件工具,可以配置C代码生成,通过这个软件可以很方便地配置IO口,时钟,和其他模块功能,另外还可以对单片机代码进行功耗计算。STM32Cube嵌入式软件库,包括HAL硬件抽象层,通过标准化的API调用实现不同STM32设备之间的可移植性中间件组件集合,如RTOS,USB库,文件系统,TCP / IP堆栈或图形库(取决于MCU系列)。所有软件包都包含大量示例和演示代码,可以与各种开发环境(包括IAR EWARM,Keil MDK或基于GCC的IDE)一起使用。使用HAL库的优点就是方便移植,而且官方的库也会更加标准,实例代码都会有标准的注释和说明,不过都是英文的。借此试用机会,正好体验一下官方的强大开发工具。#### 打开HELP菜单或者按F1,可以打开User manual文档,这个文档写得非常详细,包括软件的介绍,软件界面,各个按钮的功能,当然还有几个操作实例。我粗略看了一下STM32F4的工程建立示例,操作大概分为以下几步: 点击NewProject,这里选择SRM32F412ZG,完了以后保存一下。引脚的配置界面很友好,基本只需要动动鼠标。这次的目标是点亮一个LED灯,所以需要配置LED管脚为输出。另外这块评估板本身没有配高速晶振,但是由于板载一个ST-Link,巧妙地把晶振设计成共用的了,所以我们还需要配置晶振的两个引脚就行了。查询到PB7为板上的蓝色LED,在图上找个这个引脚,左键选择GPIO_Output。配置晶振引脚的话在左侧RCC选项里,HSE(High Speed Clock)选项卡,选择BYPASS(旁路) Clock Source然后就是配置时钟,Input frequency填写8MHz,PLL Source Mux选择HSE,PLLM分频系数这里选4,倍频系数N这里选100,System Clock Mux 记得选择PLLCLK,最后APB1选择2分频。最后对具体功能进行配置,当然这里只需要配置LED的GPIO口就行,因为我们只需要点亮一个LED就行。配置完成后,就可以选择导出工程文件了。软件支持导出多种工程,包括IAR EWARM,Keil MDK或基于GCC的IDE,这里选择MDKv5,设置导出目录就行了。最下方的Fireware是我事先安装好的,可以通过HELP–>Install New Libraries安装。这样,一个通过STM32CubeMX配置的工程就生成好了。下面用MDK打开这个工程,可以看到代码很工整,所有需要我们配置的GPIO时钟都已经配置好并且初始化完成,各个代码段都有相应的注释。到这里,各位应该体会到这个工具的强大了,不需要自己对照手册去配置,代码就自动生成了,各个函数名和宏定义也相当规范。我们只需要在这个基础上编写用户操作就可以了,不过我也刚接触这个工具,还有许多高级的操作没有试过,在后面的试用报告里应该有机会用到。最后,完成今天的目标,点亮板上的蓝色LED。在while(1)循环里加入几行代码HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET); HAL_Delay(1000); #### 编译并下载运行 现象
|