【嵌入式STM32环境搭建】Keil5安装和STM32工程模板搭建

2023-05-16

Keil5安装和STM32工程模板

Keil5安装

STM32入门教程-2022持续更新中_哔哩哔哩_bilibili

网盘提取码:8kzh,链接里压缩包的解压密码:32

STM32库函数版工程模板

搭建好模板,以后就可以直接复制工程来修改,方便快速上手

用keil5新建STM32工程(超详细的图解操作)

建工程文件夹

工程就保存在这里了,以后从这里打开

image-20211205231110032

这几个是建工程时生成的文件夹

启动文件夹Start

image-20211205225506295

startup启动文件,上电从这里运行

core内核文件

stm32f103x.h描述STM32寄存器和对应地址

system文件主要用来配置时钟

  • STM32系列命名规则

    STM32 F 103 C 6 T 7 xxx 
    1 2 3 4 5 6 7 8
      第1部分:产品系列名,固定为STM32
      第2部分:产品类型;F表示这是Flash产品,目前没有其它选项
      第3部分:产品子系列;103表示增强型产品,101表示基本型产品
    105表示集成一个全速USB 2.0 Host/Device/OTG接口和两个具有先进过滤功能的CAN2.0B控制器,
    107表示在STM32F105系列基础增加一个10/100以太
    网媒体访问控制器(MAC),互联型产品,
      第4部分:管脚数目;
      T=36脚; C=48脚; R=64脚;V=100脚; Z=144脚
      第5部分:闪存存储器容量:
      6=32K字节; 8=64K字节; B=128K字节; C=256K字节
      D=384K字节; E=512K字节
      第6部分:封装信息;
      H=BGA;T=LQFP;U=VFQFPN
      第7部分:工作温度范围;
      6=工业级,-40~+85°C
      7=工业级,-40~+105°C

第8部分:可选项;此部分可以没有,可以用于标示内部固件版本号。

  • 启动文件的选择

startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx
startup_stm32f10x_xl.s FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx
ps:
cl:互联型产品,stm32f105/107系列
vl:超值型产品,stm32f100系列
xl:超高密度产品,stm32f101/103系列
ld:低密度产品,FLASH小于64K
md:中等密度产品,FLASH=64 or 128

hd:高密度产品,FLASH大于128

固件库文件夹Library

image-20220408092938574

找到对应需要的库放进去就行了

硬件库文件夹Hardware

硬件库文件可以分成一个一个的小文件,需要的直接复制文件夹
image-20220408095201501image-20220408093356983
需要用的库导入就行

image-20220408093434217

系统库文件夹System

和硬件文件夹同理,这两文件夹可以合并成一个

image-20220408095008751image-20220408093612775
image-20220408093715742

用户文件夹User

image-20220408093745694
main.c

#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "sys.h"
#include "timer.h"
#include "delay.h"
#include "usart.h"
#include "usart3.h"
#include "iwdg.h"
#include "exti.h"
#include "oled.h"

void Hardware_Init(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    usart_init(115200);
    LED_Init();
	OLED_Init();
	
	  OLED_ShowChar(1, 1, 'A');
	  OLED_ShowString(1, 3, "HelloWorld!");
	  OLED_ShowNum(2, 1, 12345, 5);
	  OLED_ShowSignedNum(2, 7, -66, 2);
	  OLED_ShowHexNum(3, 1, 0xAA55, 4);
	  OLED_ShowBinNum(4, 1, 0xAA55, 16);
}


int main(void)
{

    Hardware_Init();

    while(1)
    {
       
    }
}

configuration.h文件用来配置库函数头文件包含关系
STM32f10x_it中断相关

image-20220408094301295
写程序时一般要注意

  • 端口复用和重映射
  • 5V容忍
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【嵌入式STM32环境搭建】Keil5安装和STM32工程模板搭建 的相关文章

  • 使用vscode开发配置uni-app(小程序)

    这个文件是用VsCode写uniapp小程序的步骤笔记 安装Vue脚手架 vue cli npm install g 64 vue cli 通过脚手架创建uni app项目 vue create p dcloudio uni preset
  • uniapp image组件的基本使用

    image组件的基本使用 就是用来显示图片的 src 来设置我们图像的路径 属性名类型默认值说明平台差异说明srcString图片资源地址 lt template gt lt div gt lt view gt lt image src 6
  • 将本机做成虚拟镜像文件(使用VMware vCenter Converter收取镜像)

    下载地址 xff08 需要账号 xff09 xff1a https customerconnect vmware com downloads info slug infrastructure operations management vm
  • uniapp 网络请求 get请求

    网络请求 在uni中可以调用uni request方法进行请求网络请求 需要注意的是 xff1a 在小程序中网络相关的API在使用需要配置域名白名单 官方文档 如果发起请求就调用我们这个uni request OBJECT 发送get请求
  • electron之旅(二)react使用

    首先使用react模板 我们这里使用的是vite和yarn span class token function yarn span create vite span class token comment 创建vite的react js模板
  • flutter学习之旅(二)

    如果不知道怎么安装编写可以查看这篇 创建项目 另一个创建方法 flutter create 项目名 热部署 vscode 热部署 vscode很简单 xff1a 可以通过Debug进行调试 使用flutter查看设备 flutter dev
  • Flutter学习之旅 - Scaffold属性Drawer侧边栏

    span class token class name Scaffold span span class token punctuation span appBar span class token punctuation span spa
  • Flutter学习之旅 - AppBar、TabBar、TabBarView实现头部顶部滑动导航

    文章目录 AppBar自定义顶部按钮图标 颜色取消debug图标TabBar TabBarView来实现顶部导航PreferredSize组件改变TabBar导航样式自定义KeepAliveWrapper缓存页面如何获取tab下的索引值销毁
  • Flutter学习之旅 - 路由

    文章目录 Flutter路由介绍普通路由普通路由传值 命名路由将 96 routes 96 的配置提到外面 使用的是Map 命名路由传值 路由跳转返回上一级路由替换路由返回到根路由返回Tabs后到指定页面 Flutter路由介绍 flutt
  • Ubuntu 和 Debian 的关系

    转自 xff1a http people ubuntu com happyaron udc cn lucid html ch11s09 html Debian 于 1993年8月16日 由一名美国普渡大学学生 Ian Murdock 首次发
  • Makefile学习笔记

    主要参考文档 xff1a 跟我一起写makefile xff0c 这里 有一篇 谈谈职业规划 CSDN对陈皓的采访 xff0c 被采访的大牛就是这个文档的作者 xff0c 他的CSDN专栏 本文的示例工程及Makefile 在这里 一 关于
  • 运行的docker增加端口映射

    1 运行了一个centos7的容器 xff0c 22端口映射给宿主机5002端口 xff1a docker span class token function ps span span class token operator span s
  • 23.易混淆命令(apt-get、wget、git clone、pip与pip3区别、apt-get和pip区别)

    摘要 xff1a 本文详细介绍了Ubuntu系统下apt get wget git clone pip与pip3 apt get和pip几组概念的区别 1 apt get 参考文献 xff1a apt get 是AdvancedPackag
  • ssh实现免密登录(文中附上脚本)

    1 为什么要互信 很多时候 xff0c 我们经常需要登录同一个服务器或者客户端 xff0c 但是输入密码很繁琐 xff0c 此时我们就需要能免密登录某些服务器或客户端 下面我们就来看怎么简单实现免密登录 有时候我们在shell脚本中会不断去
  • MapReduce概述及工作流程

    内容 mapreduce原语 xff08 独创 xff09 mapreduce工作流程 xff08 重点 xff09 MR作业提交流程 xff08 重点 xff09 YARN RM HA搭建 xff08 熟练 xff09 运行自带的word
  • IIC总线

    1 概念 IIC总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线 xff0c 主要用于连接整体电路 同一块板子两个芯片之间的通信是通过IIC总线进行的 xff08 stm32mp157a lt IIC gt SI7006 I
  • 函数拟合3

    所谓函数拟合 xff0c 就是给定一些输入点 xff0c 输出一个函数曲线 选择的基函数会直接影响线性组合函数的表达能力 当采样点较多 xff0c 而系数较少时 xff0c 会出现欠拟合 xff0c 表达能力不够 当采样点较少 xff0c
  • LDM命令

    http blog 163 com oy mcu blog static 16864297220120193458892 LDM STM指令主要用于现场保护 xff0c 数据复制 xff0c 参数传送等 STMFD指令 STMFD Rn r
  • LE Audio进入商用阶段

    LE Audio进入商用阶段 xff0c TWS耳机要变天了 36氪 蓝牙协议十年来的最大更新 xff0c LE Audio进入商用测试阶段 全球最畅销的IoT设备是什么 xff1f 我很轻松就能告诉你答案 xff1a AirPods 作为
  • CAN XL :CAN协议家族新成员

    十年之前 xff0c 你不认识我 xff0c 我也不认识CAN FD 如今 xff0c CAN FD已经陆续进入乘用车领域 xff0c 几乎所有汽车制造商都将在未来几年内逐步推出搭载CAN FD的乘用车 那十年之后 xff0c 车载网络又会

随机推荐