首页 > 其他分享 >基于keil搭建stm32项目

基于keil搭建stm32项目

时间:2024-04-04 18:55:33浏览次数:16  
标签:HAL PIN keil Drivers stm32 STM32F1xx GPIO stm32f1xx 搭建

1.下载stm32cube的固件包

1.1 进入st的官网

ST官网传送门

1.2 查找固件包

 1.3 找到自己的硬件对应的系列的固件包

 1.4 选择固件包点击进入后,点击获取软件

 1.5 选择版本下载

 

2.创建项目相关的目录

2.1 创建项目相关的目录

 2.2 给Drivers添加相关的驱动文件或者目录(BSP暂时用不上,创建一个空目录或者不创建均可)

 2.3 配置中间层相关的文件或者目录(暂时用不上可以不配置)

2.4 配置User目录文件,以下文件从固件包的项目模板可以找到

 3.创建keil工程

 3.1 创建一个stm32工程

 

 

 3.2 配置工程

文件路径:

组名 文件名 位置
Startup startup_stm32f103xe.s Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm
Drivers/SYSTEM delay.c Drivers\SYSTEM\delay
sys.c Drivers\SYSTEM\sys
usart.c Drivers\SYSTEM\usart
Drivers/STM32F1xx_HAL_Driver stm32f1xx_hal.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_cortex.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_dma.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_gpio.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_gpio_ex.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_rcc.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_rcc_ex.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_uart.c Drivers\STM32F1xx_HAL_Driver\Src
stm32f1xx_hal_usart.c Drivers\STM32F1xx_HAL_Driver\Src
User stm32f1xx_it.c User
system_stm32f1xx.c Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates

          

 

 3.3 设置魔法棒

 

 

 3.4 编写main.c

#include "../Drivers/SYSTEM/sys/sys.h"
#include "../Drivers/SYSTEM/usart/usart.h"
#include "../Drivers/SYSTEM/delay/delay.h"

void led_init(void);                       /* LED初始化函数声明 */

int main(void)
{
    HAL_Init();                              /* 初始化HAL库 */
    sys_stm32_clock_init(RCC_PLL_MUL9);      /* 设置时钟, 72Mhz */
    delay_init(72);                          /* 延时初始化 */
    led_init();                              /* LED初始化 */
    
    while(1)
    { 
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);    /* PB5置1 */ 
        HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);  /* PE5置0 */ 
        delay_ms(500);
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);  /* PB5置0 */
        HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);    /* PE5置1 */
        delay_ms(500); 
    }
}

/**
 * @brief       初始化LED相关IO口, 并使能时钟
 * @param       无
 * @retval      无
 */
void led_init(void)
{
    GPIO_InitTypeDef gpio_initstruct;
    __HAL_RCC_GPIOB_CLK_ENABLE();                          /* IO口PB时钟使能 */
    __HAL_RCC_GPIOE_CLK_ENABLE();                          /* IO口PE时钟使能 */

    gpio_initstruct.Pin = GPIO_PIN_5;                      /* LED0引脚 */
    gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */
    gpio_initstruct.Pull = GPIO_PULLUP;                    /* 上拉 */
    gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;          /* 高速 */
    HAL_GPIO_Init(GPIOB, &gpio_initstruct);                /* 初始化LED0引脚 */

    gpio_initstruct.Pin = GPIO_PIN_5;                      /* LED1引脚 */
    HAL_GPIO_Init(GPIOE, &gpio_initstruct);                /* 初始化LED1引脚 */
}

3.5 编译运行

 

 

标签:HAL,PIN,keil,Drivers,stm32,STM32F1xx,GPIO,stm32f1xx,搭建
From: https://www.cnblogs.com/navysummer-hardware/p/18114483

相关文章

  • 初探STM32f407VET6
    一、买到了板子,自己分析引脚功能我在某宝上买到一块stm32f407vet6的板子,图便宜,结果遇上了个态度差的客服。没有说明,没有资料。不能退换,只能自己想办法分析引脚在嘉里创找到了芯片原理图(LQFP-100封装),想着看走线猜引脚,结果拿着放大镜找了许久没有进展。这板子上有许多过孔,走线......
  • STM32FATFS(未完待续)
    注意,本博客适合像我一样的小白,会的不多,但是想快速做些东西,不适合会写驱动的大佬。另外,示例代码中的注释有误(从多个项目中移植过来的,未做更改),请不要被误导!!!【免费】stm32f103c8t6SD卡驱动(Fatfs)资源-CSDN文库一、copy源码,移植我在CSDN上找到了一位大佬用HAL库和fatfs实现stm32f......
  • 搭建vsftpd实现虚拟用户访问控制
    搭建vsftpd实现虚拟用户访问控制场景实例:创建admin虚拟用户,允许上传下载删除重命名任何文件user1虚拟用户,允许上传下载不允许删除和重命名文件匿名用户可以看到pub空间,但不能上传下载删除任何文件[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenf......
  • 使用VPS搭建本地可以访问的gemini(个人记录)参考github,cloudflare,nginx
    第一步:购买一台VPS服务器,可以正常ping通google和baidu,不可细说 第二步:参考这个网站的docker部分,docker到linux服务器中,不使用vercel部署(被墙)https://juejin.cn/post/7317700926826922035docker项目地址:https://github.com/babaohuang/GeminiProChat/blob/main/README_cn.......
  • 如何使用 Maven 搭建 Spring Boot 父子项目?
    大家好,我是磊磊落落,目前我在技术上主要关注:Java、Golang、架构设计、云原生和自动化测试。欢迎来我的博客(leileiluoluo.com)获取我的最近更新!本文探索如何使用Maven来搭建SpringBoot父子项目,方便我们在搭建SpringBoot微服务时作参考。使用Maven搭建SpringBoo......
  • 如何快速搭建一个 Spring Boot 项目?
    大家好,我是磊磊落落,目前我在技术上主要关注:Java、Golang、架构设计、云原生和自动化测试。欢迎来我的博客(leileiluoluo.com)获取我的最近更新!SpringBoot可以用最少的配置来快速创建一个独立的、生产级的Spring应用程序。本文介绍如何快速搭建一个SpringBoot「Hello......
  • STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天原理解析)
    STM32第六天一、 USART1、USART概念USART:(UniversalSynchronous/AsynchronousReceiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备处理器与外部设备通信的两种方式:u并行通信(八车道)......
  • Java游戏开发基础:从零开始搭建自己的游戏之《人生重开模拟器》简易版
    一、引言人生重开模拟器游戏是一种虚拟角色扮演游戏,玩家通过控制一个虚构的角色,体验与现实生活中不同的选择和结果。玩家的决策将影响角色的生活轨迹,包括他们的职业生涯、社交关系、健康和财富等方面。游戏的乐趣在于提供了一个虚拟的沙盒环境,玩家可以尝试不同的生活选择,而......
  • 不到2000字,轻松带你搞懂STM32中GPIO的8种工作模式
    大家好,我是知微!学习过单片机的小伙伴对GPIO肯定不陌生,GPIO(generalpurposeinputoutput)是通用输入输出端口的简称,通俗来讲就是单片机上的引脚。在STM32中,GPIO的工作模式被细分为8种,对于初学者来讲,要理解它们可太难了!诶诶诶,给个机会,先别急着退出哈!这不是有我在呢,跟着这篇文......
  • 2024.04.04 网站初步搭建完成
        今天,我终于把自己耗时一年左右的时间搭建的一个网站终于初步完成了,这个网站就是咸蛋Online,这个从后端到前端都是自己一步一步摸索出来的,对于一个完全不懂前端的人来讲,过程可谓坎坷,借此,把这个过程记录下来,也和大家分享下。自己的文采不是很好,有很多想写但是写不出来的,大......