当前位置: 首页 > news >正文

STM32新建工程

1、新建工程

  • Keil5中,新建Project,选择STM32Project文件夹,在此文件夹下新建一个文件夹“STM32工程模板”,然后给工程文件起名字“Project”
  • 选择器件型号

2、添加启动文件

  • 新建start文件夹
  • 复制启动文件:固件库文件夹…/CM3/DeviceSupport/ST/STM32F10x/startup/arm/中的文件复制到start文件夹下
  • 赋值stm32外设寄存器描述文件:…/CM3/DeviceSupport/ST/STM32F10x/下的stm32f10x.h(外设寄存器描述文件)、system_stm32f10x.c(配置时钟)、system_stm32f10x.c
  • 添加内核启动文件(因为stm32是内核和内核外围设备组成)…/CM3/CoreSupport文件夹下core_cm3.c、core_cm3.h(内核寄存器描述文件和相关配置)

3、添加文件到工程中(stm32基本文件)

  • 更改工程文件名为start,右键-添加存在的文件,添加start文件中的…md.vls(启动文件)、.c、.h文件

4、工程选项中添加头文件路径

在这里插入图片描述

5、新建main.c文件

  • 文件夹内新建User文件夹
  • 工程文件,右键-添加组-改名User,User上右键-添加新文件-main.c-选择Location,要选择文件夹中新建的User文件夹,否则main.c会默认在文件夹外

6、代码编写

  • 引入stm32f10x.h头文件
  • 写main函数
  • 添加一个while死循环

7、添加库函数

  • 工程文件夹下新建“Library”文件夹
  • 复制固件库文件:…/Libraries/…_Drivers/src下的文件复制到新建的“Library”文件夹下;
  • 复制inc文件(库函数头文件):…/Libraries/…_Drivers/inc下的文件复制到新建的“Library”文件夹下;
  • Keil软件,右键添加组,改名为“Library”,右键添加已存在的文件,添加库函数文件
  • 添加必要文件到User文件夹:固件库文件夹,添加stm32f10x.conf.h(用来配置库函数头文件的包含关系的以及参数检查的函数定义)和stm32f10x_it.hstm32f10x_it.c(用来存放中断函数)
  • Keil软件中将stm32f10x.conf.hstm32f10x_it.hstm32f10x_it.c三个文件添加到User组中
  • 添加宏定义“USE_STDPERIPH_DRIVER”,添加标准外设库,这样才能包含标准外设库,也就是库函数
    在这里插入图片描述
    在这里插入图片描述
    调整工程目录顺序
    在这里插入图片描述

8、库函数实现点灯

在这里插入图片描述

#include "stm32f10x.h"
// Device header
int main(void){RCC_APB2PeriphclockCmd(RCC APB2Periph GPIOC,ENABLE);GPIO_InitTypeDef GPIO_Initstructure;GPIO_Initstructure.GPIO_Mode = GPIO_Mode_out_PP;GPIO_Initstructure.GPlo_Pin = GPIO_Pin_13;GPIO_Initstructure.GPlO_speed = GPIO_speed_50MHz;GPIO_Init(GPIOC,&GPIo Initstructure);GPIO setBits(GPIOC,GPIO_Pin_13);while (1){}
}
http://www.dtcms.com/a/278465.html

相关文章:

  • HTB 赛季8靶场 - Outbound
  • 微算法科技技术创新,将量子图像LSQb算法与量子加密技术相结合,构建更加安全的量子信息隐藏和传输系统
  • 复习笔记 38
  • 安卓基于 FirebaseAuth 实现 google 登录
  • 【小米训练营】C++方向 实践项目 Android Player
  • C++ 左值右值、左值引用右值引用、integral_constant、integral_constant的元模板使用案例
  • 量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)
  • ethers.js-5–和solidity的关系
  • RPC 框架学习笔记
  • Spark 之 like 表达式
  • 软件测试中的BUG等级与生命周期详解
  • 走近科学IT版:EasyTire设置了ip,但是一闪之后就变回到原来的dhcp获得的地址
  • ros2版本自定义插件的实现与热插拔
  • 设计模式(行为型)-迭代器模式
  • java 判断两个集合中没有重复元素
  • iOS高级开发工程师面试——Objective-C 语言特性
  • Linux(Ubuntu)硬盘使用情况解析(已房子举例)
  • rk3588ubuntu 系统移植AIC8800D Wi-Fi6/BT5.0芯片
  • EMQX + Amazon S3 Tables:从实时物联网数据到数据湖仓
  • C++函数指针
  • Redis作缓存时存在的问题及其解决方案
  • 云原生核心技术解析:Docker vs Kubernetes vs Docker Compose
  • Word 与 Excel 下拉菜单对比(附示例下载)
  • 前端将传回的List数据组织成树形数据并展示
  • MEMS IMU如何赋能无人机与机器人精准感知?
  • 跨膜粘蛋白MUC17
  • MAC安装虚拟机
  • UE5多人MOBA+GAS 22、创建技能图标UI,实现显示蓝耗,冷却,以及数字显示的倒数计时还有雷达显示的倒数计时
  • IDEA中使用Servlet,tomcat输出中文乱码
  • ubuntu22.04下配置qt5.15.17开发环境