【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);
    	}
    }
    
    
  • 更改配置。类似于HAL库,RTE框架生成的项目可以重新配置。在Keil中点击“绿色小饼干”按钮,就可以重新配置。
    在这里插入图片描述

4 参考链接

相关推荐

  1. stm32知识记录

    2024-03-11 12:00:06       16 阅读
  2. [调试]stm32使用过程debug记录,持续更新ing

    2024-03-11 12:00:06       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 12:00:06       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 12:00:06       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 12:00:06       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 12:00:06       20 阅读

热门阅读

  1. Hive函数

    2024-03-11 12:00:06       22 阅读
  2. Rust 生命周期符号使用的方法和规律

    2024-03-11 12:00:06       22 阅读
  3. WPF中的DataContext

    2024-03-11 12:00:06       22 阅读
  4. FFmepg--内存IO模式

    2024-03-11 12:00:06       24 阅读
  5. c语言大小字母转换程序

    2024-03-11 12:00:06       23 阅读
  6. Redis Info - CPU

    2024-03-11 12:00:06       24 阅读
  7. Git 开源的版本控制系统-02-base usage 基本用法

    2024-03-11 12:00:06       26 阅读