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

目录

正点原子探索者 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 快速上手!点击这里进行 内核学习 。

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

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

相关文章

启用dell服务器的iDRAC

插网线 观察到 dell服务器背板左侧有一个网口,标有iDRAC字样,使用网线将该网口和网段所在的交换机连接起来。 网络配置 重启计算机,依照屏幕显示按F2进入SystemSetup。选择iDRACsettings – Network,需要改动的如下(现…

WPS表格:使用vlookup函数解决乱序数据对应问题

我们常常会遇到两个表格的内容相同,但是顺序不一致的情况。并且这种顺序无关于简单的排序,而是一种业务性很强的复杂排序规则。下面我举个例子,使用VLOOKUP复制数据。 假设太阳系行星举办了一次卖萌比赛,由太阳妈妈决定谁是最萌的…

Java | Leetcode Java题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; class Solution {public int largestRectangleArea(int[] heights) {int n heights.length;int[] left new int[n];int[] right new int[n];Arrays.fill(right, n);Deque<Integer> mono_stack new ArrayDeque<Integer>();f…

【git】通过JetBrains IDE对git的操作

应该适用于所有jetbrains产品。 一、拉取(pull)代码 上方工具栏-Git-克隆。然后填写git地址与本地存放地址。 二、搁置 修改代码后搁置代码&#xff08;不提交&#xff0c;但是也不撤销已修改的代码&#xff0c;把它暂存起来&#xff09;。 界面的左上角。1->2->3。…

[算法][差分数组][leetcode]1094. 拼车

地址&#xff1a; https://leetcode.cn/problems/car-pooling/description/ 解法一&#xff1a;暴力解法 class Solution {public boolean carPooling(int[][] trips, int capacity) {//特殊条件判断if(nulltrips||capacity<0){return false;}int [] d new int[1001];//暴…

Web自动化-日志收集

目标 1. 理解日志的相关概念 2. 掌握日志的基本用法 3. 掌握日志的高级用法 一、日志相关概念 目标 1. 了解日志的概念 2. 理解日志的作用 3. 掌握常见的日志级别 1. 日志 概念&#xff1a;日志就是用于记录系统运行时的信息&#xff0c;对一个事件的记录&#xff1b…

Qt---信号和槽

一、信号和槽机制 所谓信号槽&#xff0c;实际就是观察者模式。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xff0c;类似广播。如果有对象对这个信号…

SpringBoot自定义初始化sql文件 支持多类型数据库

我在resources目录下有init.sql初始化sql语句 指定sql文件的地址 sql内容如下&#xff1a; /*角色表*/ INSERT INTO #{schema}ccc_base_role (id, create_time, create_user_id, is_delete, role_name, status, update_time, update_user_id) VALUES(b89e30d81acb88448d412…

2024数据分析管理、数字经济与教育国际学术会议(ICDAMDEE2024)

2024数据分析管理、数字经济与教育国际学术会议(ICDAMDEE2024) 会议简介 2024年数据分析管理、数字经济和教育国际学术会议&#xff08;ICDAMDEE 2024&#xff09;将在武汉举行。会议不仅展示了来自世界各地的研究专家围绕数据分析管理、数字经济和教育的最新科研成果&#xf…

C语言 | Leetcode C语言题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; int largestRectangleArea(int* heights, int heightsSize) {int st[heightsSize];int p[2];p[0]-1,p[1]heightsSize;int size0,result0;st[size]0;for(int i1;i<heightsSize;i){ while(size!0&&heights[i]<heights[st[size-1…

Elasticsearch入门基础和集群部署

Elasticsearch入门基础和集群部署 简介基础概念索引&#xff08;Index&#xff09;类型&#xff08;Type&#xff09;&#xff08;逐步弃用&#xff09;文档&#xff08;Document&#xff09;字段&#xff08;Field&#xff09;映射&#xff08;Mapping&#xff09;分片&#x…

从零自制docker-12-【overlayfs】

文章目录 overlayfsexec.Command("tar", "-xvf", busyboxTarURL, "-C", busyboxURL).CombinedOutput()exec.Command格式差异 挂载mount卸载unmount代码地址结果演示 overlayfs 就是联合文件系统&#xff0c;将多个文件联合在一起成为一个统一的…

HTTP1.1的优化措施

3.2 HTTP/1.1 如何优化&#xff1f; 可以从以下三个方面来优化http/1.1协议&#xff1a; 尽量避免发送 HTTP 请求&#xff1b; 在需要发送 HTTP 请求时&#xff0c;考虑如何减少请求次数&#xff1b; 减少服务器的 HTTP 响应的数据大小&#xff1b; 避免发送HTTP请求 对于…

【计算机网络】数据链路层的功能

数据链路层的基本功能&#xff1a; 封装成帧透明传输差错检测 数据链路层使用的信道主要有两种 点对点信道——PPP协议广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网) 数据链路层所处的地位 从图中可以看出&#xff0c;数据从主机H1送到主机H2需要在路径中…

苍穹外卖项目---------收获以及改进(9-12)

①Spring Task-------实现系统定时任务 概念&#xff1a; 应用场景&#xff1a; 使用步骤&#xff1a; 实现订单超时和前一天派送中的订单的自动任务处理&#xff1a; Component Slf4j public class Mytask {Autowiredprivate OrderServiceimpl orderServiceimpl;/*** 处理订…

05-11 周六 一键完成FastBuild镜像部署功能的开发

05-11 周六 一键完成FastBuild镜像部署功能的开发 时间版本修改人描述2024年5月11日21:50:15V0.1宋全恒新建文档 简介 注&#xff0c;需要提前完成从DockerService到FastBuild主机的免密&#xff0c;因为脚本使用了ssh命令。 博客描述04-22 周日 阿里云-瑶光上部署FastBuild过…

最大子序列的分数

题目链接 最大子序列的分数 题目描述 注意点 n nums1.length nums2.length从nums1和nums2中选一个长度为k的子序列对应的下标对nums1中下标对应元素求和&#xff0c;乘以nums2中下标对应元素的最小值得到子序列的分数0 < nums1[i], nums2[j] < 1000001 < k < …

MVCC 详解

介绍 MVCC&#xff0c;全称 Multi-Version Concurrency Control&#xff0c;即多版本并发控制 MVCC的目的主要是为了提高数据库并发性能&#xff0c;用更好的方式去处理读-写冲突&#xff0c;做到即使有读写冲突时&#xff0c;也能做到不加锁。 这里的多版本指的是数据库中同时…

Django项目运行报错:ModuleNotFoundError: No module named ‘MySQLdb‘

解决方法&#xff1a; 在__init__.py文件下&#xff0c;新增下面这段代码 import pymysql pymysql.install_as_MySQLdb() 注意&#xff1a;确保你的 python 有下载 pymysql 库&#xff0c;没有的话可以使用 pip install pymysql安装 原理&#xff1a;用pymysql来代替mysqlL…

Mysql数据库的基础学习

为什么使用数据库&#xff1f; 1.持久化&#xff1a;将数据保存到可掉电式存储设备中以供使用。 数据库相关概念&#xff1a; DB:数据库&#xff08;Databass&#xff09;即存储数据的仓库&#xff0c;本质是一个文件系统&#xff0c;保存了一系列有组织的数据DBMS:数据库管…