当前位置:   article > 正文

【STM32】Keil RTE使用记录

【STM32】Keil RTE使用记录

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);
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
  • 更改配置。类似于HAL库,RTE框架生成的项目可以重新配置。在Keil中点击“绿色小饼干”按钮,就可以重新配置。
    在这里插入图片描述

4 参考链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/165849
推荐阅读
相关标签
  

闽ICP备14008679号