[嵌入式系统-75]:RT-Thread-快速上手:正点原子探索者 STM32F407示例

news2024/11/26 20:38:14

目录

正点原子探索者 STM32F407 上手指南

1. 简介

2. 准备工作

3. 运行第一个示例程序

3.1 编译下载

3.2 运行

继续学习


正点原子探索者 STM32F407 上手指南

1. 简介

探索者 STM32F407 是正点原子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 168Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F407 的芯片性能。

开发板外观如下图所示:

board

该开发板常用 板载资源 如下:

  • MCU:STM32F407ZGT6,主频 168MHz,1024KB FLASH ,192KB RAM
    • 外部 RAM:IS62WV51216(1MB)
    • 外部 FLASH:W25Q128(SPI,16MB)
    • 常用外设
    • LED:2个,DS0(红色,PB1),DS1(绿色,PB0)
    • 按键,4个,KEY_UP(兼具唤醒功能,PIN:0),K0(PIN:68),K1(PIN:67),K2(PIN:66)
    • 常用接口:USB 转串口、SD 卡接口、以太网接口、LCD 接口、USB SLAVE、USB HOST
    • 调试接口,标准 JTAG/SWD

开发板更多详细信息请参考 正点原子官方品牌店宝贝介绍。

2. 准备工作

正点原子探索者 STM32F407 板级支持包提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,下面以 MDK5 开发环境为例,介绍如何快速地将示例程序运行起来

MDK(Microcontroller Development Kit)和IAR(IAR Embedded Workbench)是两种不同的嵌入式系统开发工具链。这些工具链为嵌入式软件开发者提供了从项目创建、代码编写、编译链接、仿真调试到最终程序烧录一整套解决方案

  1. MDK4和MDK5

    • MDK源自德国的KEIL公司,是RealView MDK的简称,被广泛用于基于ARM的微控制器的嵌入式应用程序开发。MDK4和MDK5是MDK的不同版本,其中MDK5是较新的版本。
    • MDK5集成了编译器、调试器、仿真器和系统分析等工具,提供了全面的开发环境。它具有优秀的代码优化能力,可以生成高效、紧凑的目标代码。MDK5的用户界面更加现代化和直观,使得开发者能够更轻松地使用和导航工具。此外,MDK5还加强了针对Cortex-M微控制器开发的支持,并对传统的开发模式和界面进行了升级。
    • 在MDK5中,Software Packs(包安装器)分为Device(芯片支持)、CMSIS(ARM Cortex微控制器软件接口标准)和Middleware(中间库)三个小部分。通过包安装器,开发者可以安装最新的组件,以支持新的器件、提供新的设备驱动库以及最新例程等,从而加速产品开发进度。
    • 需要注意的是,MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上进行开发(但可能需要手动添加一些头文件)。
  2. IAR

    • IAR Embedded Workbench是IAR Systems公司提供的开发工具链,支持众多知名半导体公司的微处理器。许多全球著名的公司都在使用IAR提供的开发工具来开发他们的前沿产品。
    • IAR Embedded Workbench同样是一个集成了编译器、调试器、仿真器等工具的开发环境,提供了完整的嵌入式系统开发解决方案。

至于“MDK4、MDK5和IAR工程”的具体含义,这里的“工程”通常指的是在MDK或IAR开发环境中创建的一个具体项目或应用程序。这些工程包含了项目的所有源代码、配置文件、依赖项以及开发过程中所需的其他资源。开发者可以在这些工具中创建、编辑、编译、调试和烧录这些工程,以实现他们的嵌入式应用程序。

运行示例程序前需要做如下准备工作:

  1. MDK 开发环境

    需要安装 MDK-ARM 5.24 (正式版或评估版,5.14 版本及以上版本均可),这个版本也是当前比较新的版本,它能够提供相对比较完善的调试功能。安装方法可以参考 Keil MDK 安装。

  2. 源码获取

    GitHub - RT-Thread/rt-thread: RT-Thread is an open source IoT real-time operating system (RTOS).

    源码目录说明

  3. 使用 Mini USB 线连接开发板的 USB 转串口 到 PC 机 =》 调试终端。

    连接到 PC

3. 运行第一个示例程序

3.1 编译下载

进入到 rt-thread\bsp\stm32\stm32f407-atk-explorer 文件夹中,双击 project.uvprojx 文件,打开 MDK5 工程。

工程目录

(1)执行编译

(2)编译完成后,点击下载按钮将固件下载至开发板,

(3)下载完成后,程序会自动开始运行,观察程序运行状况。

提示:工程默认配置使用 JLink 下载程序,在通过 JLink 连接开发板的基础上,点击下载按钮即可下载程序到开发板

编译下载方法

3.2 运行

如没有自动运行,按下复位按键重启开发板,观察开发板上 LED 的实际效果。

正常运行后,LED 灯会周期性闪烁,如下图所示:

run

连接开发板对应串口到 PC , 在串口工具里打开相应的串口(115200-8-1-N) ,复位设备后,可以看到 RT-Thread 的输出信息:

提示:注:正点原子一键下载电路和终端工具冲突,在使用终端工具如:PuTTy、XShell 时,会出现系统不能启动的问题,推荐使用串口调试助手如:sscom

 \ | /
- RT -     Thread Operating System
 / | \     3.1.1 build Nov 19 2018
 2006 - 2018 Copyright by rt-thread team
msh >复制错误复制成功

继续学习

已完成 RT-Thread 快速上手!点击这里进行 内核学习 。

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

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

相关文章

机器人学导论实验2-差速驱动机器人的运动学与控制BJTU

目录 机器人导论实验-差速驱动机器人的运动学与控制 1 实验目的 2 任务一:前馈控制 2.1 内容分析 2.2 过程分析 2.3 结果分析 3 任务二:闭环控制 3.2 过程分析 3.3 结果分析 4 任务三:闭环控制(改进) 4.1 内容分…

Kotlin: ‘return‘ is not allowed here

报错:以下函数的内部函数return语句报错 Kotlin: return is not allowed here fun testReturn(summary: (String) -> String): String {var msg summary("summary收到参数")println("test内部调用参数:>结果是 :${msg…

(四十)第 6 章 树和二叉树(树的双亲表存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

项目管理-计算题公式-补充【复习】

1.EMV决策树 定义&#xff1a;用决策树在若干备选行动方案中选择一个最佳方案。在决策树 中&#xff0c;用不同的分支代表不同的决策或事件&#xff0c;即项目的备选路径。每个决策或事件 都有相关的成本和单个项目风险(包括威胁和机会)。决策树分支的终点表示沿特 定路径发展的…

C++ | Leetcode C++题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution { public:ListNode* partition(ListNode* head, int x) {ListNode* small new ListNode(0);ListNode* smallHead small;ListNode* large new ListNode(0);ListNode* largeHead large;while (head ! nullptr) {if (head-…

C语言实现猜数字小游戏

1.随机数生成 要想实现猜数字小游戏&#xff0c;依赖于随机数的生成 1.1 rand()函数 这个函数是用来生成随机数的&#xff0c;返回值是正整数&#xff0c;他的值的范围是0到rand_max之间的&#xff0c;rand_max的值在大多数编译器上面是32767&#xff0c;rand()函数的使用必…

高校课程评价|基于SSM+vue的高校课程评价系统的设计与实现(源码+数据库+文档)

高校课程评价系统 目录 基于SSM&#xff0b;vue的高校课程评价系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能 3教师功能 4专家功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

Node.js基础:从入门到实战

初识 Node.js 与内置模块 &#xff08;初识&#xff09; 1、知道什么是node.js 2、知道node.js可以做什么 3、node.js 中js的组成部分 &#xff08;内置模块&#xff09; 4、用 fs 模块读写操作文件 5、使用 path 模块处理路径 6、使用http 模块写一个基本的web服务器 初识 N…

高精度原理介绍及代码实现

目录 高精度 引入 使用场景 实现原理 高精度加法 数据存储 加法实现 总代码 高精度减法 与加法的不同点&#xff1a; 总代码 高精度乘法 总代码 高精度除法 总结 总注意点 减法注意点 高精度 引入 所谓高精度并不是很高级难懂的东西&#xff0c;只是对传统的…

改进YOLOv5,YOLOv5+CBAM注意力机制

目录 1. 目标检测模型 2. YOLOv5s 3. YOLOv5s融合注意力机制 4. 修改yolov5.yaml文件 5. ChannelAttentionModule.py 6. 修改yolo.py 1. 目标检测模型 目标检测算法现在已经在实际中广泛应用&#xff0c;其目的是找出图像中感兴趣的对象&#xff0c;并确定对象的类别和位…

一文读懂设计模式-单例模式

单例模式&#xff08;Singleton Pattern&#xff09;提供了一种创建对象的最佳方式 单例模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建&#xff0c;这个类提供了一种访问其唯一的对象的方式&#xff0c;可以直接访问&…

Redis—图文详解高可用原因

本文不会讲解Redis的用途&#xff0c;关于用途会发另一片文章讲解&#xff0c;本文主要讲的是高可用的原理。 Redis高可用主要有以下三个原因&#xff1a;主从模式(上一篇讲Kafka的文章里有涉及到)&#xff0c;哨兵模式&#xff0c;Redis-Cluster(Redis集群)。 什么是主从模式…

mysql集群NDBcluster引擎在写入数据时报错 (1114, “The table ‘ads‘ is full“)

问题描述&#xff1a;mysql集群在写入数据时&#xff0c;出现上述报错 问题原因&#xff1a;表数据已满&#xff0c;一般是在集群的管理节点设置里面datamemory的值太小&#xff0c;当数据量超过该值时就会出现该问题 解决方案&#xff1a; 修改集群管理节点的config.ini里面…

【Linux 网络】网络编程套接字 -- 详解

⚪ 预备知识 1、理解源 IP 地址和目的 IP 地址 举例理解&#xff1a;&#xff08;唐僧西天取经&#xff09; 在 IP 数据包头部中 有两个 IP 地址&#xff0c; 分别叫做源 IP 地址 和目的 IP 地址。 如果我们的台式机或者笔记本没有 IP 地址就无法上网&#xff0c;而因为…

操作系统原理与实验——实验十四多道批处理作业调度算法应用二

样例 样例一&#xff1a; 1 100 0 5 JOB1 10:06 42分钟 55K JOB2 10:20 30分钟 40K JOB3 10:30 24分钟 35K JOB4 10:36 15分钟 25K JOB5 10:42 12分钟 20K 2 100 0 5 JOB1 10:06 42分钟 55K JOB2 10:20 30分钟 40K JOB3 10:30 24分钟 35K JOB4 10:36 15分钟 25K JOB5 10…

开发一款相亲交友小程序

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言&#xff1a;pythonjavanode.jsphp均支持 运行软件…

探索共享内存:解锁并发编程的潜力

文章目录 序言shm 原理对shm的理解通过代码认识shm调用shmget方法实现 序言 system V版本 指定的一种规则(俗话说一流公司定规则,二流公司重服务,三流公司重技术).这个规则虽然有很多种(消息队列,共享内存等只是比较出名的几个).但是在内核的相关技术解决上是类似的,因为都是基…

NIUKE SQL:进阶挑战 (下)

05 窗口函数 专用窗口函数 SQL136 每类试卷得分前3名 找到每类试卷得分的前3名&#xff0c;如果两人最大分数相同&#xff0c;选择最小分数大者&#xff0c;如果还相同&#xff0c;选择uid大者 SELECT tag,uid,ranking FROM(SELECTtag,ER.uid,ROW_NUMBER() OVER (PARTITION …

jdk8的新特征

1&#xff1a; jdk8中新增的方法 在jdk8中对接口进行了增强&#xff0c;在jdk8之前 interface 接口名{ 静态常量&#xff1a; 抽象方法&#xff1a; } 在jdk8之后 interface 接口名{ 静态常量&#xff1a; 抽象方法&#xff1a; 默认方法&#xff1a; 静态方法&#xff1a; } 2…

【IMX6ULL项目】IMX6ULL下Linux实现产测工具框架

电子产品量产测试与烧写工具。这是一套软件&#xff0c;用在我们的实际生产中&#xff0c; 有如下特点&#xff1a; 1.简单易用&#xff1a; 把这套软件烧写在 SD 卡上&#xff0c;插到 IMX6ULL 板子里并启动&#xff0c;它就会自动测试各个模块、烧写 EMMC 系统。 工人只要按…