二、KeilMDK+STM32CubeMX建立工程_LED灯闪烁为例

news2024/11/27 0:28:37

1、开发环境

(1)KeilMDK:V5.38.0.0

(2)STM32CubeMx:V6.8.1

(3)MCU:STM32F407ZGT6

2、实验目的&原理图

2.1、实验目的

实现两个LED灯以500毫秒闪烁一次。

2.2、原理图

(1)LED阴极接GPIO,GPIO输出低电平,LED点亮;GPIO输出高电平,LED熄灭。

(2)LED1接PF9、LED2接PF10。

3、STM32CubeMX操作部分

3.1、新建工程

(1)打开STM32CubeMX软件。

(2)点击File→NewProject。

 (3)Commercial Part Number(商用部件号)处输入MCU型号,然后选择正确的单片机型号,点击Start Project(开始项目)。

(4)配置工程名、工程存放文件等。

点击Project Manager(项目经理)进行如下配置。

点击Code Generator(代码生成器)进行如下配置。

(4)点击GENERATE CODE生成KeilMDK工程。

3.2、配置时钟和GPIO

(1)HSE、LSE时钟源选择

  • HSE:高速外部时钟源
  • LSE:低俗外部时钟源
  • Disable:禁用
  • BYPASS Clock Source:旁路时钟源
  • Crystal/Ceramic Resonator :水晶/陶瓷共振器
  • 一般选择水晶陶瓷共振器
  • 旁路时钟源就是由外部给定一个时钟信号,一般用于作为同步时钟。
  • 水晶/陶瓷共振器:指外接晶振,经过内部振荡电路产生时钟。

(2)配置GPIO如下

(3)时钟树的配置

(3)配置需要重新点击GENERATE CODE更新KeilMDK代码。

4、KeilMDK软件编写部分

4.1、程序编写

    HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
	HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
	HAL_Delay(500);
	HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
	HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
	HAL_Delay(500);

4.2、完整工程下载地址

(1)完整工程存储在码云。

(2)STM32_CSDN: CSDN中STM32专栏的所有示例代码

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

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

相关文章

【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )

文章目录 一、使用下标索引访问列表1、下标索引用法2、正向下标索引3、反向下标索引4、代码示例 - 列表下标索引基本用法 二、嵌套列表下标索引1、嵌套列表下标索引简介2、代码示例 - 嵌套列表下标索引 三、下标索引越界错误 一、使用下标索引访问列表 1、下标索引用法 在 Pyth…

java SSM 宠物寄养管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM 宠物寄养管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

吐血整理,Selenium4自动化测试常用函数总结,各种场景操作实战...

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

GC 调优(实战篇)

高分配速率(High Allocation Rate) 分配速率(Allocation rate)表示单位时间内分配的内存量。通常使用 MB/sec作为单位, 也可以使用 PB/year 等。 分配速率过高就会严重影响程序的性能。在JVM中会导致巨大的GC开销。 如何测量分配速率? 指定JVM参数: -XX:PrintGCDetails -X…

WPS小技巧:在word进行手写批注、观看版式、自动保存、检测拼写错误的单词。

手写批注: 在审阅中可以看到一个画笔功能 点开后可以进行手写批注: 观看版式: 在视图选项卡中可以看到各种不同的版式: 选择不同,表现效果也不同: 全屏显示: 阅读模式: 写作模式&am…

【白话机器学习系列】白话向量点积

白话向量点积 点积(Dot Product)是机器学习中最常见的向量操作。本文将通过简洁易懂的语言配合大量图形为大家介绍点积运算及其背后的数学意义。 文章目录 背景知识几何视角向量的大小Cosine举例几何意义 坐标视角两种视角的等价性点积的作用总结 背景…

GC 调优(基础篇)

GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理。初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试。其实只要参照下面的步骤,就能保证你的调优方向正确: 列出性能调优指标(State your performan…

2023-06-04 Unity ScriptableObject1——ScriptableObject数据文件

文章目录 一、创建数据模板二、创建数据文件三、使用数据文件四、非持久化特性 ​ ScriptableObject 是 Unity 提供的一个数据配置存储基类,可以用来保存大量数据的数据模板,类似于可以自定义的数据资源文件模板 ​ 它是一个类似 MonoBehavior 的基类&am…

简单易懂的基础封装模块,让Web测试更简单!

目录 前言: 1. 环境配置 2. 创建基础封装模块的类 3. 运行测试用例 4. 结论 前言: 在当今互联网时代,Web应用程序的开发变得越来越重要。随着Web应用程序数量的增加,需要进行测试的Web应用程序也日益增加。为了加速测试过程&…

京东太狠:100W数据去重,用distinct还是group by,说说理由?

背景说明: Mysql调优,是大家日常常见的调优工作。所以,Mysql调优是一个非常、非常核心的面试知识点。在40岁老架构师 尼恩的读者社群(50)中,其相关面试题是一个非常、非常高频的交流话题。 近段时间,有小伙伴面试京东…

【论文】——Robust High-Resolution Video Matting with Temporal Guidance浅读

视频matting 时序监督 摘要 我们介绍了一种稳健、实时、高分辨率的人类视频抠图方法,该方法取得了新的最先进性能。我们的方法比以前的方法轻得多,可以在Nvidia GTX 1080Ti GPU上以76 FPS处理4K,以104 FPS处理HD。与大多数现有的逐帧作为独…

118.【微信小程序 - 02】

微信小程序-02 (六)、小程序基础加强1.自定义组件-组件的创建与引用(1).创建自定义组件(2).引用组件(全局和局部)(3).局部引用组件(4).全局引用组件(5).全局引用和局部引用的建议(6).组件和页面的区别 2.自定义组件-样式(1).组件样式隔离(2).组件样式隔离的注意点(3).修改组键的…

【2023】Redis哨兵模式集群

目录 🎶 哨兵模式🎶 搭建哨兵模式集群🎶 搭建一主二从复制集群🎶 创建哨兵节点 🎶 哨兵节点的其他配置🎶 哨兵模式下故障自动恢复效果🎶 通过日志查看故障恢复过程 🎶 哨兵模式 一般…

华为OD机试真题 Java 实现【获取字符串中连续出现次数第k多的字母的次数】【2023Q1 100分】,附详细解题思路

一、题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 二、输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母&#xff1b;第二…

Zinx框架学习 - 多路由实现

Zinx - V0.6 多路由实现 之前在已经给Zinx配置了路由模式&#xff0c;但是之前的Zinx只能绑定一个路由的处理业务方法显然这是无法满足基本的服务器需求&#xff0c;需要给Zinx添加多路由的方案查看之前的Server定义&#xff0c;路由Router只有一个&#xff0c;当我们想要再添…

七个很好的 Python 工具,让你的生活更轻松

有一句谚语“你不必重新发明轮子”。工具就是最好的例子。它可以帮助您以简单的方式实现复杂且耗时的功能。在我看来&#xff0c;为了提高生产力和效率&#xff0c;我们需要使用一些可用的最佳工具。在这里&#xff0c;我整理了 7 个工具&#xff0c;可以帮助您完成开发之旅。 …

【网络】TCP通讯(三次握手、四次挥手;滑动窗口;TCP状态转换;端口复用;TCP心跳检测机制)

前言&#xff1a;建议看着图片&#xff0c;根据文字描述走一遍TCP通讯过程&#xff0c;加深理解。 目录 TCP通信时序&#xff1a; 1&#xff09;建立连接&#xff08;三次握手&#xff09;的过程&#xff1a; 2&#xff09;数据传输的过程&#xff1a; 3&#xff09;关闭连…

java的IP组播

文章目录 1. 简介2. 组播地址和组3. 客户端和服务器4. 路由器和路由5. 使用组播Socket6. 构造函数7. 与组播组通信8. 案例实战 1. 简介 前面介绍的Socket都是单播Socket&#xff0c;它们提供点对点的通信。单播Socket在两个明确的端点之间创建一个连接&#xff0c;有一个发送方…

LNMP平台搭建

文章目录 安装 Nginx 服务安装 MySQL 服务安装配置 PHP 解析环境 安装 Nginx 服务 systemctl stop firewalld systemctl disable firewalld setenforce 0安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make创建运行用户 useradd -M -s /sbin/nologin nginx编译…

ArduPilot之H743+BMI270x2+First Normal Takeoff

ArduPilot之H743BMI270x2First Normal Takeoff 1. 源由2. 正常起飞3. 问题汇总3.1 机架构型3.2 IMU对齐3.3 接收机3.4 GPS3.5 VTX3.6 电调3.7 PID 4. 总结5. 参考资料6. 附录6.1 补充AcroTrainer视频6.2 补充Acro视频 1. 源由 鉴于目前该飞控板子在ArduPilot开源社区尚未得到官…