本文基于STM32CubeIDE+ 标准库 +STM32F013CBT6,编写demo点亮LED灯。

1、新建工作空间;

2、新建STM32工程

2.1、选择芯片

2.2、建立空文件

3、添加标准库文件

使用到的标准库问价如下:

3.1、进入工程属性配置

3.2、添加标准库头文件路径

驱动头文件

内核头文件

注意添加成相对路径,否则工作空间所在文件夹移动会导致加载不到头文件:

3.3、添加标准库源文件

驱动源文件

内核源文件

添加成功后:点击Apply and close

添加成功后观察工程文件如下正常:

4、工程配置

4.1  预定义配置,如3.1进入工程属性,进行如下配置。

注意:下图两个预定义为参考KEIL预定义,如若工程存在其他预定义请注意添加

4.2 移植原工程文件头文件(本demo仅点亮LED灯,故仅拷贝了如下两个头文件)

5  整改标准库文件

5.1 删除内核文件中的启动文件,此文件与工程文件中的启动文件冲突

5.2  修改内核文件

5.3 编写main.c,与标准库相同,如下代码参考

#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"/*JTAG做普通引脚时GPIO最后配置*/
void JTAG_GPIO_Config(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void RCC_Configuration(void)
{//== Setup the microcontroller system. Initialize the Embedded Flash Interface,//== initialize the PLL and update the SystemFrequency variable.SystemInit();SysTick_Config(SystemFrequency / 1000);        NVIC_SetPriority(SysTick_IRQn, 0x0);
}
void led_out_gpio_config(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);//== Configure the GPIO_LED pinGPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;                          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;               GPIO_Init(GPIOA, &GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);//== Configure the GPIO_LED pinGPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;                         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;               GPIO_Init(GPIOB, &GPIO_InitStructure);
}#if !defined(__SOFT_FP__) && defined(__ARM_FP)#warning "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use."
#endifint main(void)
{JTAG_GPIO_Config();RCC_Configuration();                            //== System Clocks Configurationled_out_gpio_config();while (1){GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);GPIO_WriteBit(GPIOB, GPIO_Pin_3, Bit_RESET);GPIO_WriteBit(GPIOB, GPIO_Pin_4, Bit_RESET);}
}

5.3编译文件,生成elf与bin文件(.elf文件为调试文件,如需生成hex文件自行百度资料较多)

本博客所建工程资源地址:https://download.csdn.net/download/white_loong/12822177

STM32CubeIDE移植标准库相关推荐

  1. STM32F407 DP83848驱动调试过程总结(标准库到HAL库移植避坑指南)

    文章目录 移植到正点原子例程 下载ST最新F4平台例程适配 使用CubeMX从头开始 移植标准库上层函数到CubeMX初始化的HAL库 项目要从之前的STM32F107平台移植到STM32F407平台 ...

  2. Keil to STM32CubeIDE标准库移植

    Keil to STM32CubeIDE标准库移植 一.新建CubeIDE空白工程 这里以个人使用的STM32F407为例,新建空白工程即不使用HAL库,上图 注意选择Empty,然后Finish 建 ...

  3. 手把手教你STM8单片机标准库移植

    本节主要内容:完成Lora模块单片机STM8L101F3标准库的移植 STM8l101F3单片机属于是8位单片机,但和传统的51有很大的区别: 1.STM8的内核不一样:  51单片机的内核是传统的8 ...

  4. IAR新建stm32工程,完美移植stm32标准库(附源码)

    开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...

  5. freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5

    最近因为工作需要用到FreeRTOS,其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程,但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的 ...

  6. STM32标准库工程中移植TencentOS-tiny

    一.移植前的准备 1. 引言 因为项目的原因需要将原有的标准库工程升级为基于TencentOS-tiny的RTOS工程,所以花费一点时间记录移植过程,提供一份向基于STM32标准库的老工程中移植Ten ...

  7. 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32

    ** 0.96寸OLED显示屏标准库移植HAL库,使用模拟IIC ** 由于项目的需要使用OLED屏显示,并且现有的项目程序是基于HAL库编写的,而手头能找到的程序是标准库的驱动程序,大概看了一下代码 ...

  8. 基于STM32标准库的MS5837程序移植

    基于STM32标准库的MS5837程序移植 一.准备工作 1. 硬件电路 2. 新建工程 二.开始移植 1. IIC底层模拟 2. MS5837移植 3. 主函数编写 4. 代码调试结果 三.源代码下 ...

  9. 基于keil5自动配置stm32f103标准库的官网freertos移植

    基于keil5自动配置stm32f103标准库的官网freertos移植 前言 序言:利用keil5自动配置stm32f103标准库工程 闲话 正式篇 移植官网FreeRTOS 前言   当笔者学习s ...

最新文章

  1. Java IO流(三)
  2. mysql表格导入java_使用java技术将Excel表格内容导入mysql数据库
  3. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
  4. Storm,Trident,Spark Streaming,Samza和Flink主流流处理框架比较
  5. C# / VB.NET合并PDF指定页
  6. SourceInsight 设置点滴
  7. 【POJ - 2373】Dividing the Path(单调队列优化dp)
  8. Diango博客--14.使用 Django 项目中的 ORM 编写伪造测试数据脚本
  9. 设计一个简单分页存储管理系统_【系统架构】如何设计一个简单灵活的收银系统?看这里!(1)...
  10. linux环境ubuntu: pushd: not found
  11. 腾讯云+宝塔+tomcat / nginx部署前端代码
  12. 一个人的生命周期,就是人的一生
  13. WorkPlus助力“深i企”打造移动数字化底座
  14. matlab 分水岭法,分水岭算法Matlab实现——三种方法 | 学步园
  15. 京杭大运河北线疏浚穿越黄河地形UTM平面直角坐标系分析GIS模型建立
  16. Vue用图片制作Wifi动态图 制作小喇叭效果
  17. Oracle中的序列,同义词
  18. 微星GT77HX-13VI2023原厂Windows11重建F3一键恢复msirestore功能
  19. 服务器设计之SEDA架构
  20. javascript面向对象(三):class语法详解

热门文章

  1. 以太坊私有链POA模式
  2. Editorial Board 、co-editor、ediitor、editor-in-chief的区别
  3. 计算机组成原理【2】
  4. 剪气球串 java_气球的8种创新科学玩法,玩过3样算你牛
  5. H5与其他平台交互框架
  6. day007-列表和字典
  7. android studio在raw文件夹下使用MediaPlayer播放Mp3音乐
  8. 解决“你的设备不支持Google Play服务”而无法运行App的问题
  9. 前端该如何评估开发时间
  10. mysql查找删除重复数据并只保留一条