0 前言

  最近因为任务需要,再次开始研究STM32,打算过一遍之前记录的笔记,在创建工程模板时,突然发现一个之前被自己忽略的东西,那就是创建项目时会弹出的Run-Time Environment,抱着好奇的心态去找了一些资料,结果发现这貌似也不简单。

1 概述

  在新版Keil(UV5)中,新建一个project,选定芯片型号之后,就会自动弹出这个窗口:

大多数教程在这里就直接跳过了,但是通过查找资料,我发现这个Run-Time Environment,缩写RTE,实际上是Keil官方针对新版Keil出的一个快速配置项目工程的一个运行时环境。其包含了常用外设的驱动(UART、I2C、SPI、USB等),还有常用的实时操作系统(RTX、FreeRTOS、RTT等),常用的一些库和协议栈(FatFs、Jansson、MQTT、mbed TLS等),可以基本满足产品开发的需求。 在我看来,实际上就是除ST官方给出的标准库和HAL库之外的一种开发框架,也可以叫做是库。

  很明显,它最大的好处在于不用添加杂七杂八的库文件,直接在Keil中就能创建工程,十分快捷,易用。

3 GPIO示例

  接下来,将以最简单的外设——GPIO为例,来展示这个RTE框架的使用方法。

  • 首先新建项目文件,然后选择一个芯片型号,比如STM32F103C8T6,然后进入到RTE配置页面。必须选择的内容:

  • CMSIS/CORE
  • Device/Startup
  • 外设选择,在Device/StdPeriph Drivers中选择。比如要选择GPIO,那么就找到GPIO,然后勾选。但是这个时候下面output可能会出现警告:

    这是因为GPIO对其他外设,如RCC等有依赖关系。可以点击左下角的Resolve按钮解决依赖。

    然后再点击OK,工程就创建完毕。展开创建的工程可以发现,其实这种方式也是将一些库文件添加到文件夹下,并解决了依赖关系。新建一个main文件,加上一个main函数,编译测试一下,没有意外的话应该是"0 Error(s), 2 Warning(s).,这两个警告是代码上的一些小问题,不影响。

  • GPIO实践。将以下代码复制到main.c文件,然后编译下载,正常PA4引脚下对应的LED会闪烁。

    #include "stm32f10x_gpio.h"             // Keil::Device:StdPeriph Drivers:GPIO
    
    void Delay_us(uint32_t xus);
    void Delay_ms(uint32_t xms);
    
    int main()
    {
    	RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    	GPIO_InitTypeDef GPIO_InitStructure;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    	GPIO_Init(GPIOA, &GPIO_InitStructure);
    	while(1)
    	{
    		GPIO_ResetBits(GPIOA, GPIO_Pin_4);
    		Delay_ms(500);
    		GPIO_SetBits(GPIOA, GPIO_Pin_4);
    		Delay_ms(500);
    	}
    }
    
    void Delay_us(uint32_t xus)
    {
    	SysTick->LOAD = 72 * xus;				//设置定时器重装值
    	SysTick->VAL = 0x00;					//清空当前计数值
    	SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器
    	while(!(SysTick->CTRL & 0x00010000));	//等待计数到0
    	SysTick->CTRL = 0x00000004;				//关闭定时器
    }
    
    void Delay_ms(uint32_t xms)
    {
    	while(xms--)
    	{
    		Delay_us(1000);
    	}
    }
    
    
  • 更改配置。类似于HAL库,RTE框架生成的项目可以重新配置。在Keil中点击“绿色小饼干”按钮,就可以重新配置。

  • 4 参考链接

  • 链接1
  • 作者:记录无知岁月

    物联沃分享整理
    物联沃-IOTWORD物联网 » error code: 526

    发表评论