STM32F103单片机使用STM32CubeMX新建IAR工程步骤

打开STM32CubeMX软件,选择File
在这里插入图片描述
选择新建工程
在这里插入图片描述
在打开的窗口输入单片机型号
在这里插入图片描述
在右下角选择单片机型号,然后点右上角 start project,开始新建工程。
在这里插入图片描述
接下来设置调试接口,在左边System Core中选择 SYS,然后在右右边debug选项中选择Serial wire,设置仿真器,一般STlink,Jlink 都选择这个。如歌这个不选,代码就没办法使用仿真器下载。
在这里插入图片描述

下面设置时钟,左边选择RCC,我这里使用的是外部时钟,所以在High Speed clock 选择外部晶振。

在这里插入图片描述

下面设置IO口,在这里设置一个LED口PC13,左边选择GPIO,然后右边直接在单片机的PC13口上单击鼠标选择输出模式。

在这里插入图片描述
然后在中间区域设置IO口模式,这里使用默认设置就行,在User Label的位置写上LED,这样在程序中就会将PC13引脚起名为LED,方便程序中使用。设置完成之后,就可以看到右边单片机PC13口名称变成了LED。

通过右边单片机的引脚就可以看到使用了那些IO口,使用的IO口会变成绿色。
接下来设置时钟,在上面选择CLOCK Configuration 。
在这里插入图片描述

时钟源选择HSE,然后直接在HCLK的位置输入需要的时钟频率,这里输入72,然后按回车键,系统就会自动计算分频和倍频系数。当然也可以字节设置系数。

最后设置工程
在这里插入图片描述
输入工程名,选择工程路径,选择编译器和编译器的最小版本。

在这里插入图片描述
这里选择的编译器为IAR

在这里插入图片描述

接下来设置代码生成方式,这里选择只添加使用到的库,同时外设初始化单独生成.c和.h文件。
在这里插入图片描述
最后点右上角的Gnerate code按钮,直接生成代码。
在这里插入图片描述

代码生成完成之后,在弹出的对话框中直接选择打开工程。

在这里插入图片描述
此时就会使用IAR编译器自动打开工程
在这里插入图片描述
可以看到工程框架和初始化代码都已经选好了。
接下来自己添加上LED灯闪烁的代码就行了。

在这里插入图片描述
在while函数中添加自己的代码,这里要注意,自己的代码必须添加到注释里面 BEGIN 和END之间,这样下次使用CubeMX生成代码的时候自己写的代码不会被覆盖掉,如果写在了其他地方,那么代码就会被CubeMX生成的代码覆盖掉。

接下来在IAR中选择自己使用的仿真器,工程名上右键,选择Option
在这里插入图片描述
在Debugger中选择自己的仿真器,然后点击确定按钮。
在这里插入图片描述
如果使用的是jlink的swd下载还需要在jlink/jtrace 选项中选择SWD接口,这里默认选择的是JTAG接口。这里不设置的话下载程序时会报错。
在这里插入图片描述

最后编译下载工程,可以看到板子上的LED指示灯已经开始闪烁了。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

轻量化特征融合 | YOLOv11 引入一种基于增强层间特征相关性的轻量级特征融合网络 | 北理工新作

本改进已同步到Magic框架 摘要—无人机图像中的小目标检测由于分辨率低和背景融合等因素具有挑战性,导致特征信息有限。多尺度特征融合可以通过捕获不同尺度的信息来增强检测,但传统策略效果不佳。简单的连接或加法操作无法充分利用多尺度融合的优势,导致特征之间的相关性不…

Tomcat项目本地部署

今天分享一下如何在本地,不依赖于idea部署聚合项目,以我做过的哈米音乐项目为例,项目结构如下: ham-core模块为公共模块,我们只需将另外三个模块:前台、后台、文件服务器打包,将打好的jar、war包…

进入保护模式

Intel CPU启动的时候是16位(实模式), 但是我们要工作在32位模式下 实模式下没有任何保护措施, 别人可能通过给数据段寄存器赋值上代码段地址, 然后来改变代码段的内容, 保护模式访问内容会检查权限之类的, 也会检查程序访问的内存范围是不是超了, 我们这个操作系统不会利用保…

MVC基础——市场管理系统(一)

文章目录 项目地址一、创建项目结构1.1 创建程序以及Controller1.2 创建View1.3 创建Models层,并且在Edit页面显示1.4 创建Layou模板页面1.5 创建静态文件css中间件二、Categories的CRUD2.1 使用静态仓库存储数据2.2 将Categorie的列表显示在页面中(List)2.3 创建_ViewImport.…

C#开发-集合使用和技巧(十)Union用法-并集

在 C# 中&#xff0c;IEnumerable 的 Union 方法用于返回两个序列的并集。Union 方法会去除重复的元素&#xff0c;确保结果集中每个元素都是唯一的。以下是 Union 方法的基本用法&#xff1a; 基本语法 public static IEnumerable<TSource> Union<TSource>(this…

高效查找的秘密武器二:布隆过滤器

最近学了这个布隆过滤器&#xff0c;所以小编来分享下这个神奇的数据结构 引入&#xff1a; 在我们日常生活中&#xff0c;当然这里特指是编程中时&#xff0c;经常遇到要判断一个元素是否在集合中&#xff0c;比如判断一个单词/词语&#xff0c;是否在已知的字典中&#xff1…

C++入门终

目录 一、引用 二、内联函数 三、auto关键字 四、指针空值nullptr 一、引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间 类型&引用变量名(对象名)…

C++实现排序算法:冒泡排序

目录 前言 冒泡排序性质 C代码实现冒泡排序 冒泡图解 第一趟排序 第二趟排序 第三趟排序 排序结果 结语 前言 冒泡排序的基本思想是通过从前往后&#xff08;从后往前&#xff09;两两比较&#xff0c;若为逆序&#xff08;即arr[i] < arr[i 1]&#xff09;则交换…

selenium+python实现12306自动化抢火车票(二)

往期回顾&#xff1a; seleniumpython实现12306自动化抢火车票&#xff08;一&#xff09; 1、根据乘车人姓名匹配&#xff0c;支持1人或多人选择 定位出所有乘车人的元素集&#xff0c;根据姓名集合去元素集里循环迭代匹配&#xff0c;匹配上了操作选中 ele_alldriver.find_e…

基于openzeppelin插件的智能合约升级

一、作用以及优点 部署可升级合约&#xff0c;插件自动部署proxy和proxyAdmin合约&#xff0c;帮助管理合约升级和交互&#xff1b;升级已部署合约&#xff0c;通过插件快速升级合约&#xff0c;脚本开发方便快捷&#xff1b;管理代理管理员的权限&#xff0c;只有proxyAdmin的…

游戏引擎学习第36天

仓库 :https://gitee.com/mrxiao_com/2d_game 回顾之前的内容 在这个程序中&#xff0c;目标是通过手动编写代码来从头开始制作一个完整的游戏。整个过程不使用任何库或现成的游戏引擎&#xff0c;这样做的目的是为了能够全面了解游戏执行的每一个细节。开发过程中&#xff0…

MySQL-设置utf8mb4字符集以支持全面的字符显示

本文主要介绍如何通过统一使用utf8mb4字符集来实现在MySQL实例中存储emoji表情的最佳实践。 我们将从客户端、会话连接和MySQL实例等多个方面介绍如何配置和修改字符集以支持utf8mb4。 客户端和会话连接的字符集配置 为了确保能够正确存储和显示emoji表情&#xff0c;我们首…

【Linux从青铜到王者】数据链路层(mac,arp)以及ip分片

局域网通信 通过之前的学习&#xff0c;我们了解了应用层&#xff0c;传输层&#xff0c;网络层的协议和作用&#xff0c;这里先做个总结 应用层——http&#xff0c;https协议&#xff0c;也可以自己定义一套&#xff0c;作用是进行数据的处理传输层——tcp&#xff0c;udp协…

基于STM32的风速风向传感器设计

目录 引言系统设计 硬件设计软件设计系统功能模块 风速采集模块风向采集模块数据处理与显示模块控制算法 风速数据处理算法风向数据处理算法代码实现 风速数据采集与处理风向数据采集与处理数据显示与通信系统调试与优化结论与展望 1. 引言 随着气象监测需求的增加&#xff0…

13.在 Vue 3 中使用OpenLayers加载鹰眼控件示例教程

在 WebGIS 开发中&#xff0c;鹰眼控件 是一个常用的功能&#xff0c;它可以为用户提供当前地图位置的概览&#xff0c;帮助更好地定位和导航。在本文中&#xff0c;我们将基于 Vue 3 的 Composition API 和 OpenLayers&#xff0c;创建一个简单的鹰眼控件示例。 效果预览 在最…

安装certbot(ubuntu系统)

安装nginx 更新软件包列表 sudo apt update 更新软件包列表 sudo apt install nginx 更新软件包列表 sudo systemctl status nginx 注意&#xff1a;强烈推荐使用&#xff0c;系统直接安装nginx&#xff0c;&#xff08;不推荐使用docker安装nginx&#xff09;为后续更简单…

【C语言】C语言的变量和声明系统性讲解

声明和定义的概念 在C语言中&#xff0c;**声明&#xff08;Declaration&#xff09;和定义&#xff08;Definition&#xff09;**是两个重要的基础概念&#xff0c;它们都涉及到变量、函数、结构体等的使用&#xff0c;但功能和作用存在明显区别&#xff1a; 声明&#xff1a…

【Linux】文件的内核级缓冲区、重定向、用户级缓冲区(详解)

一.文件内核级缓冲区 在一个struct file内部还要有一个数据结构-----文件的内核级缓冲区 打开文件&#xff0c;为我们创建struct file&#xff0c;与该文件的所对应的操作表函数指针集合&#xff0c;还要提供一个文件的内核级缓冲区 1.write写入具体操作 当我们去对一个文件写…

MCU、ARM体系结构,单片机基础,单片机操作

计算机基础 计算机的组成 输入设备、输出设备、存储器、运算器、控制器 输入设备&#xff1a;将其他信号转换为计算机可以识别的信号&#xff08;电信号&#xff09;。输出设备&#xff1a;将电信号&#xff08;&#xff10;、&#xff11;&#xff09;转为人或其他设备能理解的…

JDK8新特性之Stream流01

Stream 流介绍 目标 了解集合的处理数据的弊端 理解Stream流的思想和作用 集合处理数据的弊端 当我们需要对集合中的元素进行操作的时候&#xff0c;除了必须的添加&#xff0c;删除&#xff0c;获取外&#xff0c;最典型的就是遍历集合。我们来体验集合操作的弊端&#xff…