stm32软件安装以及创建工程

文章目录

  • 前言
  • 一、软件安装
    • 软件破解
  • 二、创建工程
  • 三、创建项目
    • 创建组
    • 配置启动文件
      • 添加到组
    • 为项目添加头文件路径
    • 创建源文件(main函数文件)
    • 使用寄存器配置引脚
      • 拼接好STLINK与stm32最小电路板的接线
      • 编写程序
        • 配置STLink下载程序
        • 配置寄存器
        • 配置13号端口(信号灯的端口)
        • 配置输出端口寄存器
    • 使用库函数
      • 配置库函数文件
      • 使用库函数点亮信号灯
        • 配置定时器
        • 然后是配置端口模式
        • 最后一步就是电源供给
        • 具体代码如下
    • 启动文件的分类
  • 总结新建工程步骤


前言

基于bilibili 江协科技《STM32入门教程-2023版 细致讲解 中文字幕》的学习记录,资料资源:https://jiangxiekeji.com/download.html,以下操作大多基于此资料。

一、软件安装

需要安装keil5 MDK,老方法进入官网点击download
在这里插入图片描述
选择MDK版本
在这里插入图片描述
然后注册信息自己填写

软件破解

使用管理员身份打开keil5
选择file中的license management,复制如图id
在这里插入图片描述
打开破解程序keygen,按照如图顺序,把刚刚复制的id放入cid中,点击generate,3指向的框中就会产生一串字符串,复制这串字符串。

注意:此软件可能会被识别为病毒,可以在windows安全中心允许这个程序行为即可。

在这里插入图片描述

粘贴到如图框中点击add lic,上面会显示相关信息。
在这里插入图片描述
这样软件就破解成功了。

二、创建工程

打开keil5,点击pack installer
在这里插入图片描述
选择需要的包内容,双击下载,下面会显示进度条,速度比较缓慢。
在这里插入图片描述
这样就可以创建stm32f103c8的项目了
在这里插入图片描述

``

三、创建项目

由于stm32有大量的寄存器,操作起来十分复杂,所以采用基于st公司所创建的基本库,通过调用函数来操作。

创建组

右键Target 1,点击Add Group,然后单击两下刚刚建的组修改名字。
在这里插入图片描述
在这里插入图片描述

配置启动文件

以下基于资料文件的路径

注意:先创建一个与项目同级目录下的Start文件夹,保存这些文件,再将这些文件加入到Start组,后面的同理

复制目录:STM32资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0.zip\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 中的所有文件(选择需要的型号加入Start组,这里选择md.s结尾的文件其他的不需要加入组)和STM32资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0.zip\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x目录如下文件(图二)和STM32资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0.zip\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中两个内核文件 到工程的Start组(自定义名称)中,如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加到组

右键组,加入外部文件,选择相应文件add即可
在这里插入图片描述

在这里插入图片描述

为项目添加头文件路径

不然会找不到头文件而使用不了。
在这里插入图片描述
选择你刚刚创建的Start文件夹即可
在这里插入图片描述

创建源文件(main函数文件)

同样,在项目同级目录下创建User文件,并在keil中创建User组,名称可自定义,创建的main.c文件放在User文件中,再加入User组。
在这里插入图片描述

使用寄存器配置引脚

拼接好STLINK与stm32最小电路板的接线

在这里插入图片描述
然后插入电脑,如下则成功
在这里插入图片描述

编写程序

配置STLink下载程序

在项目配置中选择STLINK debugger
在这里插入图片描述
然后点旁边的settings
在这里插入图片描述
编译之后,点击download即下载程序
在这里插入图片描述
下载成功后,信号灯就不会再闪烁了
在这里插入图片描述

配置寄存器

先配置时钟寄存器,通过参考手册查看使能信息
在这里插入图片描述
在这里插入图片描述
所以其他位全0,第四位置1,打开IO端口C时钟使能。
即 RCC->APB2ENR = 0x00000010;

配置13号端口(信号灯的端口)

在这里插入图片描述
在这里插入图片描述
如上图配置,即 GPIOC->CRH = 0x00300000;

配置输出端口寄存器

低电平点亮,如下图将13位配置为低电平
在这里插入图片描述
所以直接给全0信号灯就会亮,即 GPIOC->ODR = 0x00000000;
然后编译下载程序
在这里插入图片描述

使用库函数

配置库函数文件

项目同级目录下创建Library文件夹来存放库函数文件,并在keil创建Library组,将 STM32资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0.zip\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src 中所有文件复制粘贴到刚刚创建的Library文件夹中,然后添加到Library组中
然后将 STM32资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0.zip\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 中如下文件复制粘贴到User文件夹,并加入到User组中
在这里插入图片描述
最后还需要一个宏定义(USE_STDPERIPH_DRIVER),并添加所有的头文件目录
在这里插入图片描述

使用库函数点亮信号灯

和寄存器配置顺序一样

配置定时器

函数定义如下,参数分别为选择寄存器、是否使能
在这里插入图片描述

然后是配置端口模式

函数定义如下
在这里插入图片描述
第一个参数选择要配置的端口,第二个参数需要是一个结构体,需要我们自己定义,使用他给的类型GPIO_InitTypeDef GPIO_InitStructure;这种方式定义结构体,然后使用结构体的成员方式进行配置,三个成员变量定义如下
在这里插入图片描述
成员的值如下
选择端口:13
在这里插入图片描述

选择频率在这里插入图片描述
选择模式:通用推挽输出
在这里插入图片描述
给成员赋值之后就可以使用GPIO_Init函数配置端口了。

最后一步就是电源供给

高电平供给
在这里插入图片描述
低电平供给
在这里插入图片描述

具体代码如下
#include "stm32f10x.h"                  // Device headerint main(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_13);// GPIO_ResetBits(GPIOC,GPIO_Pin_13);while(1){}return 0;
}

启动文件的分类

根据型号用于选择启动文件
在这里插入图片描述


总结新建工程步骤

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户体验优化:HubSpot的秘密武器

在当今数字化市场中,提升用户体验已经成为企业成功的关键因素之一。HubSpot,作为一款领先的营销自动化工具,不仅在推动销售业绩上表现出色,同时通过其独特的策略也致力于提升用户体验。运营坛将深入探讨HubSpot是如何通过个性化推…

Leetcode—41. 缺失的第一个正数【困难】

2024每日刷题&#xff08;一零九&#xff09; Leetcode—41. 缺失的第一个正数 实现代码 class Solution { public:int firstMissingPositive(vector<int>& nums) {int n nums.size();// nums[i] i 1;// nums[i] - 1 i;// nums[nums[i] - 1] nums[i];for(int …

能源管理新高度DI/DO/CAN/RS485/USB网关助力二次开发

能源管理领域正在寻求更为智能化和高效的解决方案。一款集成了先进ARM架构处理器的边缘计算能源储能网关应运而生&#xff0c;以其卓越的性能和丰富的接口功能吸引了众多行业用户的关注。 这款网关不仅配备有常规的数字输入&#xff08;DI&#xff09;、数字输出&#xff08;DO…

【简便方法和积累】pytest 单元测试框架中便捷安装插件和执行问题

又来进步一点点~~~ 背景&#xff1a;之前写了两篇关于pytest单元测试框架的文章&#xff0c;本篇内容对之前的做一个补充 一、pytest插件&#xff1a; pytest 有非常多的插件&#xff0c;很方便&#xff0c;以下为插件举例&#xff1a; pytest&#xff0c;pytest-html&#x…

新手从零开始学习数学建模论文写作(美赛论文临时抱佛脚篇)

本文记录于数学建模老哥视频的学习过程中。b站视频&#xff1a;http://【【零基础教程】老哥&#xff1a;数学建模算法、编程、写作和获奖指南全流程培训&#xff01;】https://www.bilibili.com/video/BV1kC4y1a7Ee?p50&vd_sourceff53a726c62f94eda5f615bd4a62c458 目录…

树型结构构建,模糊查询,过滤

一、前言 1、最近在做甘特图&#xff0c;有些需求和树型结构要求很大&#xff0c;看的是 pingCode&#xff0c;有搜索 2、还有抽取一部分树型结构的&#xff0c;如下是抽取上面的结构类型为需求的&#xff0c;重新组成树型 二、构建多颗树型结构 1、某些业务下&#xff0c;从…

C语言指针的几种用途

先看题目&#xff0c;写一个fun函数&#xff0c;统计一个字符串中某个字符出现的次数&#xff0c;以及这个字符第一次出现的位置。 看起来很简单&#xff0c;似乎几行就可以搞定&#xff0c;但是写出来之后&#xff0c;才发现代码怎么这么长&#xff01;程序里多处使用了指针&…

069:vue中EventBus的使用方法(图文示例)

第069个 查看专栏目录: VUE ------ element UI 本文章目录 示例背景示例效果图示例源代码父组件&#xff1a;子组件A&#xff1a;子组件B&#xff1a;eventbus/index.js&#xff1a; EventBus的基本使用方法&#xff1a; 示例背景 在Vue中&#xff0c;使用EventBus可以实现组件…

爬虫(二)使用urllib爬取百度贴吧的数据

下一期我就不用urllib来抓取数据了&#xff0c;因为urllib现在已经很少人用&#xff0c;大部分人用得是requests&#xff0c;requests也是基于底层urllib的一个模块。 首先我先来讲一下关于如何使用动态的UA&#xff01; 动态UA就是指在自己创建的一个列表里随机选择一个UA当做…

Java开发工具 IntelliJ IDEA 2023中文

IntelliJ IDEA 2023是一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于多种编程语言&#xff0c;包括Java、Python、Kotlin等。它提供了许多特色功能&#xff0c;以提高开发效率和代码质量。 Java开发工具 IntelliJ IDEA 2023中文 以下是一些IntelliJ ID…

大数据分析|设计大数据分析的三个阶段

文献来源&#xff1a;Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1…

扫盲软件开发工具低代码

目录 一、低代码是什么&#xff1f; 二、低代码平台的优势和劣势都是什么&#xff1f; 三、低代码操作方式 四、写在最后 一、低代码是什么&#xff1f; 低代码是一套可视化开发工具&#xff0c;它帮开发者把前后端基础功能写扎实&#xff0c;开发者只需要通过填表配置或拖…

C#——三角形面积公式

已知三角形的三个边&#xff0c;求面积&#xff0c;可以使用海伦公式。 因此&#xff0c;可以执行得到三角形面积公式的计算方法代码如下&#xff1a; /** / <summary>* / 三角形面积公式* / </summary>* / <param name"a">边长a</param>*…

OfficeWeb365 Readfile 任意文件读取漏洞复现

0x01 产品简介 OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。 0x02 漏洞概述 OfficeWeb365 Rea…

前端常见标签

<li> (List Item)&#xff1a;定义列表中的一个项目&#xff08;项&#xff09; <ul> (Unordered List)&#xff1a;定义无序列表 <ol> (Ordered List)&#xff1a;定义有序列表 <a> (Anchor Tag)&#xff1a;定义超链接 <ul><li>苹…

何以穿越产业周期?解读蓝思科技2023年增长密码

1月30日晚&#xff0c;蓝思科技发布了2023年业绩预告&#xff0c;2023年预计实现归母净利润29.38亿元-30.60亿元&#xff0c;同比增长20%-25%。 松果财经注意到&#xff0c;蓝思科技通过垂直整合&#xff0c;构筑了更具竞争力的产业链条。一方面&#xff0c;公司打造了包含ODM…

蓝桥杯---煤球数目

有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字. 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 代码 pu…

Web3生态系统:构建去中心化的数字社会

随着科技的飞速发展&#xff0c;我们正处在迈向数字未来的道路上&#xff0c;而Web3生态系统则成为这一变革的中心。不仅仅是技术的演进&#xff0c;Web3代表着对传统互联网体系的颠覆&#xff0c;致力于构建一个去中心化的数字社会。本文将深入探讨Web3的核心特征、对金融、社…

3dmatch-toolbox详细安装教程-Ubuntu14.04

3dmatch-toolbox详细安装教程-Ubuntu14.04 前言docker搭建Ubuntu14.04安装第三方库安装cuda/cundnn安装OpenCV安装Matlab 安装以及运行3dmatch-toolbox1.安装测试3dmatch-toolbox(对齐两个点云) 总结 前言 paper:3DMatch: Learning Local Geometric Descriptors from RGB-D Re…

MySQL进阶——存储引擎

MySQL体系结构如下图所示&#xff1a; 包含连接层、服务层、引擎层、存储层&#xff0c;下面将对这四层架构进行介绍 1、连接层 连接层主要完成类似于连接处理、授权认证及相关的安全方案&#xff08;校验密码&#xff09;&#xff0c;服务器也会为安全接入的每个用户端验证他…