STM32CubeIDE移植标准库
本文基于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移植标准库相关推荐
- STM32F407 DP83848驱动调试过程总结(标准库到HAL库移植避坑指南)
文章目录 移植到正点原子例程 下载ST最新F4平台例程适配 使用CubeMX从头开始 移植标准库上层函数到CubeMX初始化的HAL库 项目要从之前的STM32F107平台移植到STM32F407平台 ...
- Keil to STM32CubeIDE标准库移植
Keil to STM32CubeIDE标准库移植 一.新建CubeIDE空白工程 这里以个人使用的STM32F407为例,新建空白工程即不使用HAL库,上图 注意选择Empty,然后Finish 建 ...
- 手把手教你STM8单片机标准库移植
本节主要内容:完成Lora模块单片机STM8L101F3标准库的移植 STM8l101F3单片机属于是8位单片机,但和传统的51有很大的区别: 1.STM8的内核不一样: 51单片机的内核是传统的8 ...
- IAR新建stm32工程,完美移植stm32标准库(附源码)
开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...
- freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5
最近因为工作需要用到FreeRTOS,其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程,但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的 ...
- STM32标准库工程中移植TencentOS-tiny
一.移植前的准备 1. 引言 因为项目的原因需要将原有的标准库工程升级为基于TencentOS-tiny的RTOS工程,所以花费一点时间记录移植过程,提供一份向基于STM32标准库的老工程中移植Ten ...
- 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32
** 0.96寸OLED显示屏标准库移植HAL库,使用模拟IIC ** 由于项目的需要使用OLED屏显示,并且现有的项目程序是基于HAL库编写的,而手头能找到的程序是标准库的驱动程序,大概看了一下代码 ...
- 基于STM32标准库的MS5837程序移植
基于STM32标准库的MS5837程序移植 一.准备工作 1. 硬件电路 2. 新建工程 二.开始移植 1. IIC底层模拟 2. MS5837移植 3. 主函数编写 4. 代码调试结果 三.源代码下 ...
- 基于keil5自动配置stm32f103标准库的官网freertos移植
基于keil5自动配置stm32f103标准库的官网freertos移植 前言 序言:利用keil5自动配置stm32f103标准库工程 闲话 正式篇 移植官网FreeRTOS 前言 当笔者学习s ...
最新文章
- Java IO流(三)
- mysql表格导入java_使用java技术将Excel表格内容导入mysql数据库
- bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
- Storm,Trident,Spark Streaming,Samza和Flink主流流处理框架比较
- C# / VB.NET合并PDF指定页
- SourceInsight 设置点滴
- 【POJ - 2373】Dividing the Path(单调队列优化dp)
- Diango博客--14.使用 Django 项目中的 ORM 编写伪造测试数据脚本
- 设计一个简单分页存储管理系统_【系统架构】如何设计一个简单灵活的收银系统?看这里!(1)...
- linux环境ubuntu: pushd: not found
- 腾讯云+宝塔+tomcat / nginx部署前端代码
- 一个人的生命周期,就是人的一生
- WorkPlus助力“深i企”打造移动数字化底座
- matlab 分水岭法,分水岭算法Matlab实现——三种方法 | 学步园
- 京杭大运河北线疏浚穿越黄河地形UTM平面直角坐标系分析GIS模型建立
- Vue用图片制作Wifi动态图 制作小喇叭效果
- Oracle中的序列,同义词
- 微星GT77HX-13VI2023原厂Windows11重建F3一键恢复msirestore功能
- 服务器设计之SEDA架构
- javascript面向对象(三):class语法详解