【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会闪烁。

    c 复制代码
    #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 参考链接

相关推荐
Wallace Zhang4 小时前
STM32F103_Bootloader程序开发11 - 实现 App 安全跳转至 Bootloader
stm32·嵌入式硬件·安全
GodKK老神灭4 小时前
STM32 CCR寄存器
stm32·单片机·嵌入式硬件
杰克逊的日记9 天前
MCU编程
单片机·嵌入式硬件
Python小老六9 天前
单片机测ntc热敏电阻的几种方法(软件)
数据库·单片机·嵌入式硬件
懒惰的bit9 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
HX科技10 天前
STM32给FPGA的外挂FLASH进行升级
stm32·嵌入式硬件·fpga开发·flash·fpga升级
Suagrhaha10 天前
驱动入门的进一步深入
linux·嵌入式硬件·驱动
国科安芯10 天前
基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
嵌入式硬件·硬件架构·硬件工程
Li Zi10 天前
STM32 ADC(DMA)双缓冲采集+串口USART(DMA)直接传输12位原始数据到上位机显示并保存WAV格式音频文件 收藏住绝对实用!!!
经验分享·stm32·单片机·嵌入式硬件
进击的程序汪10 天前
触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
linux·网络·嵌入式硬件