STM32-新建工程(标准库)

目录

STM32F10x新建工程(标准库)

移植文件夹

新建工程

添加启动文件和必需文件

在工程中加载新添加的文件

在工程中添加文件路径

在工程中添加main函数

添加lib库

添加必需文件

添加宏定义

点亮LED(标准库)


STM32F10x新建工程(标准库)

移植文件夹

移植文件夹为STM32F10x_StdPeriph_Lib_V3.5.0。 

新建工程

新建一个文件夹,存放工程。以桌面/STM32Program为例。

打开keil5--Project--New uVision Project--选择桌面的STM32Program文件夹--起工程名字:如STM32Program--保存。

keil5弹出选择芯片型号的页面--选择,如STM32F103VET6等。然后弹出芯片包管理页面,可以直接关闭。

到此,工程创建完毕。但该工程还无法使用,因为缺少了启动文件。

添加启动文件和必需文件

在移植文件夹的STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/arm下选择复制对应的启动文件,如startup_stm32f10x_md.s

在新建的工程目录STM32Program下新建start文件夹,粘贴刚刚复制的启动文件到start文件夹中。

回到目录移植文件夹的STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x目录下,复制stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h

在新建的工程目录STM32Program/start文件夹,粘贴刚刚复制的启动文件到start文件夹中。

来到目录移植文件夹的STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport目录下,复制内核文件core_cm3.c、core_cm3.h

在新建的工程目录STM32Program/start文件夹,粘贴刚刚复制的启动文件到start文件夹中。

在工程中加载新添加的文件

keil5上打开STM32Program工程,点击小控件:Manage Project Items(控件图标为3个小方格堆积,魔术棒隔壁)。

双击左键默认的Groups下的Source Groups 1,修改名称为start。

然后在start的组下,添加新文件。依次添加:.s启动文件,core_cm3的源文件和头文件,除.s外的其余文件。

然后点击Manage Project Items的OK按钮即可。

在工程中添加文件路径

keil5上打开STM32Program工程,点击小控件:Options for Target 'xx'(控件图标为魔术棒)。

魔术棒的C/C++(AC6)选项-Include Paths,可看到包含路径框的右侧有个省略号的按钮,点击。

然后包含start文件夹路径,点击OK。

在工程中添加main函数

在工程目录下添加user文件夹,keil5打开工程,点击小控件:Manage Project Items(控件图标为3个小方格堆积,魔术棒隔壁)。

添加新建组:user。点击OK。在keil5的工程中右击user文件夹,Add New Item to Group ‘user’,选择c文件,名称为mian,路径选择刚才创建的user文件夹。点击Add。

在mian.c中右键添加头文件,Insert '#include' file--stm32f10x.h。

然后写main函数。选择编译。

注意:user头文件路径别忘记添加。

#include "stm32f10x.h"                  // Device header

int main(void)
{
	while(1)
	{
	
	}
}

编译后发现有很多错误,那是因为工程中keil5选用的是编译器6。

点击小控件:Options for Target 'xx'(控件图标为魔术棒)。在魔术棒的Target选项页中找到ARM Compiler,选择Use default compiler version 5。

再次编译,此时发现没有错误了。此时可以直接寄存器开发了,但如果需要标准库开发,还需要一些文件。

添加lib库

在STM32Program工程中新建lib文件夹。

然后打开STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver,该目录下有src文件夹和inc文件夹。把src文件夹和inc文件夹的所有文件复制到STM32Program工程的lib文件夹。

然后在keil5的工程中新建lib组加载新添加的文件和添加头文件路径。

添加必需文件

在STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下复制stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h文件。

粘贴到STM32Program工程的user文件夹。

然后在keil5的工程中user组加载新添加的文件和添加头文件路径。

添加宏定义

打开stm32f10x.h,光标去到文件最末尾,找到USE_STDPERIPH_DRIVER并复制。

然后点击魔术棒,来到C/C++选项页,在Define中粘贴USE_STDPERIPH_DRIVER。

点击OK。点击编译。没有错误了。此时已经创建好了。

点亮LED(标准库)

如LED为PC13。低电平点亮LED。

int main(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	
	GPIO_InitStruct.GPIO_Pin 	= GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Mode 	= GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed	= GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStruct);
	
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	
	while(1)
	{
	
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/222111.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小型洗衣机什么牌子好又便宜?小型洗衣机全自动

随着科技的快速发展,现在的人们越来越注重自己的卫生问题,不仅在吃上面会注重卫生问题,在用的上面也会更加严格要求,而衣服做为我们最贴身的东西,我们对它的要求也会更加高,所以最近这几年较火爆的无疑是内…

【银行测试】第三方支付功能测试点+贷款常问面试题(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、第三方支付功能…

k8s 安装 Longhorn

Longhorn 的 helm 模板官网地址:Longhorn 加入仓库 helm repo add longhorn https://charts.longhorn.iohelm repo update开始部署 helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.5.3检查pod运行状态是…

12V转5V3A同步降压芯片WT6043

12V转5V3A同步降压芯片WT6043 WT6043是一款具有内部功率 MOSFET的同步整流降压转换器,它的工作输入范围为4V-18V,提供3A的连续输出电流,具有出色的负载和线路调节能力。WT6043采用SOT23-6封装,是一款高度集成的降压转换器&#x…

基于SSM框架的在线投票系统

基于SSM框架的在线投票系统 文章目录 基于SSM框架的在线投票系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 随着科技的不断发展,人们对于民主参与的需求也越来越高。在线投票系统应运而生,为人们提供了便捷、高效的投票…

使用dcmtk读取dicom Tag信息

dicom文件由导言、前缀和多个数据元素构成,一个.dcm文件可以形象的看成一本字典,而每个字都由特定的Tag作为检索。 Tag的值中存放有该图对应患者的姓名、年龄、性别等,还包括拍摄医院的名称、操作技师的名字等,以及每一张图的像素…

Vue学习笔记-<router-link>的replace的属性

router-link的replace属性 作用:控制路由跳转时操作浏览器历史记录的模式 浏览器的历史记录有两种写入方式:push和replace,其中push是追加历史记录(将浏览的url请求入栈),replace则是替换当前记录&#x…

Python sorted函数及用法以及如何用json模块存储数据

Python sorted函数及用法 sorted() 函数与 reversed() 函数类似,该函数接收一个可迭代对象作为参数,返回一个对元素排序的列表。 在交互式解释器中测试该函数,可以看到如下运行过程: >>> a [20, 30, -1.2, 3.5, 90, 3.…

Vulnhub-DC-4 靶机复现完整过程

一、搭建环境 1.工具 kali:攻击机 IP地址:192.168.200.4 DC-4:靶机 IP地址:暂时未知 2.注意 这里搭建环境两台机器应该选用同类的网络连接方式:这里两台的连接方式为模式 二、信息收集 1.主机发现 找寻同网段下存活的主机&…

维修上门预约小程序源码系统 附带完整的搭建教程

随着互联网的普及和科技的不断发展,人们对维修服务的需求也在不断增加。为了满足这一需求,维修上门预约小程序应运而生。 以下是部分代码示例: 系统特色功能一览: 1.用户注册登录 用户可以通过手机号或微信号注册账号&#xff0…

【C++11】线程库/异常

一:线程库 1.1:线程库(thread) 1.1.1:为什么要有线程库 1.1.2:thread库中的成员函数 1.1.3:线程函数参数 1.2:互斥锁(mutex) 1.2.1:为什么要有互斥锁 1.2.2:C11中的互斥锁 1.3:原子操作(atomic) 1.4:条件变…

Web开发-问题-前后端交互数据不一致

0x01 问题描述 所用的技术:VueSpring Boot后端传给前端数据: [Student(studentId1, personorg.fatmansoft.teach.models.Person4abe6020, major软件工程, className一班, grade一年级), Student(studentId2, personorg.fatmansoft.teach.models.Person…

如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码下载地址🍅 👇🏻 精彩专栏推荐订阅👇🏻…

纯CSS实现计时器

跟b站 小k师兄学习一手CSS的计时器 1. 基本样式 注意&#xff0c;这里开始按钮使用伪类进行标签名字的设定&#xff0c;因为开始按钮点击以后有一个暂停的功能&#xff0c;就先不写死了。 <!DOCTYPE html> <html lang"en"><head><meta charset&…

2024年CSC国际区域问题研究及外语高层次人才培养项目介绍

国家留学基金委&#xff08;CSC&#xff09;公布了2024年国际区域问题研究及外语高层次人才培养项目&#xff0c;申报时间均为3月中下旬。为帮助关注者了解项目申报情况&#xff0c;知识人网小编特整理本文。 近日&#xff0c;国家留学基金委&#xff08;CSC&#xff09;公布了…

在Linux上优化HTTP服务器的性能

在Linux上优化HTTP服务器的性能是一个涉及多个方面的任务&#xff0c;包括服务器硬件、网络设置、软件配置和内容优化。以下是一些关键的优化建议&#xff1a; 选择合适的HTTP服务器软件 Linux上有多种HTTP服务器软件&#xff0c;如Apache、Nginx、Lighttpd等。选择适合您需求…

stm32项目(11)——基于stm32的俄罗斯方块游戏机

1.功能设计 使用stm32f103zet6平台&#xff0c;以及一块LCD屏幕&#xff0c;实现了一个俄罗斯方块游戏机。可以用按键调整方块的位置、还可以控制方块下降的速度&#xff01; 2.视频演示 俄罗斯方块 3.俄罗斯方块发展史 俄罗斯方块是一种经典的拼图游戏&#xff0c;由苏联俄罗…

VMware虚拟机搭建+云平台购买搭建(阿里云+UCloud)【设置主机名以及主机名映射、配置免密登录、配置JDK】

本地虚拟机的搭建 一、准备网段 在VMware的虚拟网络编辑器中将VMnet8虚拟网卡的 网段设置为&#xff1a;192.168.88.0网关设置为&#xff1a;192.168.88.2 二、下载CentOS操作系统文件&#xff0c;并安装 三、克隆多台虚拟机 依照同样的方法&#xff0c;克隆出node2…

HashMap相关专题

前置知识&#xff1a;异或运算 异或运算介绍 异或有什么神奇之处&#xff08;应用&#xff09;&#xff1f; &#xff08;1&#xff09;快速比较两个值 &#xff08;2&#xff09;我们可以使用异或来使某些特定的位翻转&#xff0c;因为不管是0或者是1与1做异或将得到原值的相…

3.4 路由器的DHCP配置

实验3.4 路由器的DHCP配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施&#xff08;一&#xff09;配置基于接口地址池的DHCP1.交换机的基本配置2.路由器的基本配置3.开启路由器的DHCP服务器功能4.配置路由器接口的DHCP功能5.设置计算机使用DHCP方式获取IP地…
最新文章