当前位置: 首页 > news >正文

STM32 Nucleo-144开发板开箱bring-up

在这里插入图片描述

文章目录

  • 1. 开篇
  • 2. 开发环境搭建
    • 2.1 下载官方例程
    • 2.2 ST-Link安装
  • 3. STM32F446ZE demo工程
    • 3.1 STM32F446ZE简介
    • 3.2 跑个demo试一试


1. 开篇

最近做项目,用到STM32F446ZET6这款MCU,为了赶进度,前期软件需要提前开发,于是在某宝买了对应主控的官方开发板,为了避免遗忘,后面能翻出来回忆一些细节,就形成了本篇的主要内容,同时也希望能够帮助刚上手的小伙伴少走弯路,如果对你有帮助请点赞、收藏、转发,谢谢!


2. 开发环境搭建

开发环境一般是ST官方的STM32CubeIDE和MDK(Keil),博主用的是Keil,关于STM32CubeIDE和Keil的安装不是本篇的重点,在此就不赘言。默认你已经安装到位并能熟练使用。

开发板的资源可以在下面的资源页面中下载:
STM32F446ZE MCU的STM32 Nucleo-144开发板资源页面
主要参考:
【1】UM1727 用户手册 STM32 Nucleo板软件开发工具入门.pdf
【2】MB1137 开发板原理图.pdf
【3】UM1974 User manual STM32 Nucleo-144 boards (MB1137).pdf
在本篇的绑定资源中也已经为大家准备好了,请根据需求自行下载。

在这里插入图片描述


2.1 下载官方例程

例程资源包下载链接
在这里插入图片描述


在这里插入图片描述


下载完后是这样的:
在这里插入图片描述


解压开后,我们找到一个例程,拷贝一份,用Keil打开,准备编译、烧录:
在这里插入图片描述


2.2 ST-Link安装

如果自己的电脑之前没有用过ST-Link调试器,那就先安装一下:
ST-Link驱动下载页面
在这里插入图片描述


STSW-LINK009驱动下载页面
在这里插入图片描述


下载成功后,解压:
在这里插入图片描述


根据自己的系统安装对应的驱动,安装成功后,查看设备管理器,确认是否已经识别板子:
在这里插入图片描述


在Keil工程中,选择ST-Link Debugger:
在这里插入图片描述


确认Keil已经识别到了板子:
在这里插入图片描述


3. STM32F446ZE demo工程

3.1 STM32F446ZE简介

STM32F446xC/E设备基于高性能Arm®Cortex®-M4 32位RISC内核,工作频率高达180 MHz。Cortex-M4核心采用浮点单元(FPU)单精度,支持所有Arm®单精度数据处理指令和数据类型。它还实现了一整套DSP指令和一个增强应用程序安全性的内存保护单元(MPU)。

STM32F446xC/E设备包含高速嵌入式存储器(高达512 KB的闪存,高达128 KB的SRAM)、高达4 KB的备份SRAM,以及连接到两条APB总线、两条AHB总线和一个32位多AHB总线矩阵的大量增强型I/O和外围设备。

所有设备都提供三个12位ADC、两个DAC、一个低功耗RTC、十二个通用16位定时器,包括两个用于电机控制的PWM定时器和两个通用32位定时器。

它们还具有标准和高级通信接口。


资源总览:
在这里插入图片描述


所有功能:

  • core:带FPU的Arm®32位Cortex®-M4 CPU、允许从闪存执行0等待状态的自适应实时加速器(ART加速器)、频率高达180 MHz、MPU、225 DMIPS/1.25 DMIPS/MHz(Dhrystone 2.1)和DSP指令;
  • 存储
    • 512 KB的闪存
    • 128 KB的SRAM
    • 具有高达16位数据总线的灵活外部存储器控制器:SRAM、PSRAM、SDRAM/LPSSDR SDRAM、NOR/NAND闪存
    • 双模式QuadSPI接口
  • LCD并行接口,8080/6800模式
  • 时钟、重置和供应管理
    • 1.7 V至3.6 V应用电源和I/O
    • POR、PDR、PVD和BOR
    • 4至26 MHz晶体振荡器
    • 内部16 MHz工厂微调RC(1%精度)
    • 带校准的RTC 32 kHz振荡器
    • 带校准的内部32 kHz RC
  • 低功率
    • 睡眠、停止和待机模式
    • 用于RTC的VBAT电源、20×32位备份寄存器以及可选的4 KB备份SRAM
  • 3×12位,2.4 MSPS ADC:最多24个通道,三重交织模式下7.2 MSPS
  • 2×12位D/A转换器
  • 通用DMA:具有FIFO和突发支持的16流DMA控制器
  • 最多17个定时器:2个看门狗,1个SysTick定时器,最多12个16位和2个32位定时器,最高180 MHz,每个定时器最多4个IC/OC/PWM或脉冲计数器
  • 调试模式
    • SWD和JTAG接口
    • Cortex®-M4 Trace Macrocell™
  • 最多114个具有中断功能的I/O端口
    • 高达111个快速I/O,最高可达90 MHz
    • 多达112个 5 V容错I/O
  • 多达20个通信接口
    • SPDIF Rx
    • 多达4×I2C接口(SMBus/PMBus)
    • 最多四个USART和两个UART(11.25 Mbit/s,ISO7816接口,LIN,IrDA,调制解调器控制)
    • 最多四个SPI(45Mbits/s),其中三个具有多路复用I2S,通过内部音频PLL或外部时钟实现音频类精度
    • 2x SAI(串行音频接口)
    • 2×CAN(2.0B有源)
    • SDIO接口
    • 消费电子控制(CEC)I/F
  • 高级连接
    • 带片上PHY的USB 2.0全速设备/主机/OTG控制器
    • USB 2.0高速/全速设备/主机/OTG控制器,带专用DMA、片上全速PHY和ULPI
    • 专用USB电源导轨可在整个MCU电源范围内实现片上PHY操作
  • 8至14位并行摄像头接口,最高可达54兆字节/秒
    • CRC计算单元
    • RTC:亚秒精度,硬件日历
    • 96位唯一ID

3.2 跑个demo试一试

板子上电自带程序,按键按下LD1、LD2、LD3切换两灭。
我们烧录一个串口demo试试:
查看原理图,串口3和ST-LINK调试器在同一个USB口上:
在这里插入图片描述


看一下时钟配置:
配的是内部时钟在这里插入图片描述


看一下串口配置:
修改了一个demo代码,加了个循环打印
在这里插入图片描述


烧录进去后,打开串口助手,看看效果:
在这里插入图片描述


至此,STM32 Nucleo-144开发板STM32F446ZET6的bring-up完成。

相关文章:

STM32 Nucleo-144开发板开箱bring-up

文章目录 1. 开篇2. 开发环境搭建2.1 下载官方例程2.2 ST-Link安装 3. STM32F446ZE demo工程3.1 STM32F446ZE简介3.2 跑个demo试一试 1. 开篇 最近做项目,用到STM32F446ZET6这款MCU,为了赶进度,前期软件需要提前开发,于是在某宝买…...

计算机毕业设计 基于SSM的问卷调查管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

基于SpringBoot的无忌在线考试系统(源码+讲解+调试运行)做毕设课设均可

技术栈 前后端分离 前端使用: Vue Element Plus 后端使用: SpringBoot Mysql8.0 Mybatis-Plus 功能 分为 管理员端 和 老师端 和 学生端 管理员端 登陆页 ​科目管理 查看所有科目 ,增加 ,修改 ,删除科目 , 模糊搜索课程 ​考试管理 查看所有考试 ,增加 ,修改 ,删除考试 题库…...

无涯教程-JavaScript - EOMONTH函数

描述 EOMONTH函数返回该月最后一天的序列号,该序列号是start_date之前或之后的月份数。 语法 EOMONTH (start_date, months)争论 Argument描述Required/OptionalStart_date 代表开始日期的日期。 应该使用DATE函数或其他公式或函数的输出输入日期。 如果将日期作为文本输入…...

【LeetCode-面试经典150题-day21】

目录 120.三角形最小路径和 64.最小路径和 63.不同路径Ⅱ 5.最长回文子串 120.三角形最小路径和 题意: 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标…...

算法刷题记录-双指针/滑动窗口(LeetCode)

809. Expressive Words 思路 根据题目描述,我们可以知道,如果要将某个单词定义为可扩张(stretchy),需要满足如下两个条件: 所以,我们在实现的时候,可以通过两个指针p1和p2&#x…...

Python基础tuple元组定义与函数

元组的特点 有序:元组中的元素是按照顺序排列的。不可更改:一旦创建,元组中的元素不可被修改、增加或删除。元素类型多样化:元组可以包含任何数据类型的元素。 定义一个非空元组 name_tuple (a, b, c, d)定义一个空元组 name…...

【linux命令讲解大全】088.深入理解 shell 脚本中的 trap 命令

文章目录 trap概要主要用途选项参数返回值关于信号例子 从零学 python trap 捕捉信号和其他事件并执行命令。 概要 trap [-lp] [[arg] signal_spec ...]主要用途 用于指定在接收到信号后将要采取的动作。 脚本程序被中断时执行清理工作。 选项 -l:打印信号名称…...

bean的管理-bean的获取

获取bean 默认情况下,在Spring项目启动时,会把bean都创建好(但是还会受到作用域及延迟初始化的影响)放在IOC容器中,如果想主动获取这些bean,可以通过如下方式 根据name获取bean Object getBean&#xff08…...

如何快速清理已经上传到Git仓库的.DS_Store文件

很久以前,发过这样一篇文章《Git全局忽略MacOS系统下的.DS_Store文件》,主要是针对MacOS用户,如何方便的在自己机器中免疫所有.DS_Store文件的误提交。如果有这个需求,且还没有搞过的读者可以通过上面这篇文章学习。 今天想要分享…...

美的的笔试

第一题 有两只猫咪和n条不同类型的鱼,每条鱼都只能被其中一只猫咪吃掉。 下标为i处的鱼被吃掉的得分为: 如果第一只猫咪吃掉,则得分为reward1[i]。如果第二只猫咪吃掉,则得分为reward[i]。 给你一个正整数数组reward1 ,一个正整数数组reward2&#xff0…...

Android 1.2 开发环境搭建

目录 1.2 开发环境搭建 1.JDK安装与配置 2.开发工具二选一 3.相关术语的解析 4.ADB命令行的一些指令 5.APP程序打包与安装的流程: 6.APP的安装过程: 7.本节小结 1.2 开发环境搭建 现在主流的Android开发环境有: ①Eclipse ADT SDK ②Android Stu…...

vue 页面加水印

首先创建一个waterMark.js文件,当然文件命名可自定义, use strictconst watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container*/ const setWatermark (str, container) > {const id 1.23452384164.123412415…...

Android ImageView详解

scaleType属性详解 在 Android 中,ImageView 控件的 scaleType 属性用于指定图像在 ImageView 内部的缩放和对齐方式。scaleType 属性可以帮助你控制图像的显示方式,以适应 ImageView 的尺寸或实现其他特定的显示效果。以下是常见的 scaleType 属性值和…...

ElasticSearch第二讲:ES详解 - ElasticSearch基础概念

ElasticSearch第二讲:ES详解 - ElasticSearch基础概念 在学习ElasticSearch之前,先简单了解下ES流行度,使用背景,以及相关概念等。本文是ElasticSearch第二讲,ElasticSearch的基础概念。 文章目录 ElasticSearch第二讲…...

Ajax模拟视频点赞功能

前台 <%--Created by IntelliJ IDEA.User: xxDate: 2023/9/4Time: 10:00To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head>&l…...

java解决 衣服尺码 Compare T-Shirt Sizes

java解决衣服尺码 时间限制&#xff1a;3000MS 内存限制&#xff1a;589824KB 题目描述&#xff1a; 一般来说衣服尺码分为L&#xff0c;M&#xff0c;S三种&#xff0c;分别代表大(Large)&#xff0c;中(Medium)和小(Small)。不过由于人的身高差异性较大&#xff0c;尺码又会…...

基于python+Django深度学习的音乐推荐方法研究系统设计与实现

摘 要 数字化时代带动着整个社会的信息化发展&#xff0c;随着数字媒体的不断发展&#xff0c;现在通多媒体数字产品的内容越来越丰富&#xff0c;传播影响力越来越强&#xff0c;以音乐为例&#xff0c;现在的音乐文化多样、音乐资源也异常的丰富&#xff0c;在这种大数据的环…...

【枚举区间+线段树】CF Ehu 152 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 感觉是个套路题 对区间计数&#xff0c;按照CF惯用套路&#xff0c;枚举其中一个端点&#xff0c;对另一个端点计数 对于这道题&#xff0c;枚举右端点&#xff0c;对左端点计数 Code&#xff1a; #include &…...

宏定义天坑记录

宏定义天坑记录 事件原委与推理过程 在编译一个使用了Protobuf的项目时出现了如下报错 [ybVM-8-7-centos boost_searcher]$ make g -o http_server http_server.cc data/raw_html.pb.cc -stdc11 -lboost_system -lboost_filesystem -lpthread -ljsoncpp -lprotobuf In file…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...