【2022年的STM32】 01-开发环境上手初体验

Visual Studio2022 + VisualGDB5.6R9 + STM32CubeMX搭建STM32开发环境-超详细 这段时间自己在使用Visual Studio2022 + VisualGDB2.6R9 + STM32CubeMX搭建STM32开发环境,在搭建的过程中遇到了各种问题()查询网上的资料,并没有一个详细完整的搭建教程,所以在自己摸索,参考了网上各种零散的搭建教程之后,自己写了这么一篇搭建过程的参考,希望可以给有需要的小伙伴提供一点点帮助,如果有问题,欢迎在评论区交流,互相学习~ 阅读详情

概述

最近基于NXP S32K1完成博客专栏,决定看一下好多年未使用ST的MCU,看其是否在开发环境、驱动、芯片特性上更好用了呢?

S32K1博客专栏

开发环境

STM32的开发环境有很多

  • Eclipse
  • ARM EMbed
  • Keil
  • IAR Systems
  • STM32CUBE IDE

STM32CUBE

这里我们选择ST官方基于eclipse的免费STM32CUBE IDE,下载地址: STM32CUBE Download

STM32 CubeMX

代码生成工具,配置时钟、引脚和片上外设功能等。下载地址:CubeMX Download

开始使用CubeMX

打开CubeMX,选择一款芯片,对其时钟、引脚、外设任意配置:
CubeMX

然后再Project Manager中进行工程相关配置,如输出到哪个文件夹,建立哪个IDE的开发环境等。
最后,点击Generate Code生成工程。

生成后,可根据弹窗打开CUBE。

开始使用Cube

Project
由于是基于Eclipse的IDE,感觉各项操作和NXP S32DS相同,譬如字体设置、背景颜色等。

回到工程本身,其逻辑上分成3部分,驱动(HAL各个片上外设、CMSIS中stm32内存映射、时钟等)、应用(这里包含在Core中)、其它(.ld链接文件等)。

代码分析

stm32f4xx_it中是使能外设的中断函数定义与申明,待用户补充;
main中完成各个外设的初始化,然后while(1)。

static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOF_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOF, GPIO_PIN_2, GPIO_PIN_RESET);

  /*Configure GPIO pin : PF1 */
  GPIO_InitStruct.Pin = GPIO_PIN_1;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
//...

}

ST还是一如既往的使用结构体逐个初始化的方式完成外设初始化…只是在接口名称上不同了而已。
那么,初始化了多少个引脚,就要调用HAL_GPIO_Init多少次!!!
其结构体中Mode、Pull用uint32_t定义的,GPIO_MODE_IT_RISING、GPIO_MODE_INPUT等使用#define定义,在stm32f4xx_hal_gpio中定义,未使用枚举定义,相对而言,代码可对象较差。

GPIO
HAL 中提供了GPIO相关操作接口,满足使用,它在中断处理HAL_GPIO_EXTI_Callback定义成__weak,在其它地方重新定义。
不过貌似并不是每个GPIO都有中断功能,这一点相对NXP S32K1较弱。

总结

ST提供了CubeMX可以配置外设、时钟、引脚等,可以生成不同IDE的工程,其还有免费的IDE STM32CUBE。

STM32/CH32 移植 Protobuf Protobuf 软件中的protoc原生不支持生成 C 语言的代码,所以需要额外编译protobuf-c代码生成工具。编译protobuf-c需要依赖protobuf的动态库文件,而 Protobuf 的 Releases 中没有提供 Protobuf 的动态库,所以需要编译 Protobuf 代码。protobuf-c最新的 v1.5.1 版本和protobuf的最新版本 v30.0 编译无法通过,所以选择protobuf的 v25.6 配合protobuf-c的 v1.5.1 版本编译。 阅读详情

相关推荐

ESP8266-01 + stm32单片机 + app开发实现无限距离控制

今天来给大家出一篇 esp8266的无线传输,由于是第一次写,不喜勿喷。言归正传,本人刚开始研究的是

weixin_43654858的博客 1万+

Vs Stdio 2022 +STM32CubeMX环境配置(STM32F407ZET6)

这是我用daplink烧录器的配置。最下面的两个不要勾选,要不然编译的时候会报错!选择自己的开发板型号我的是(stm32F407zet6)第一步:在Vs Stdio 2022 中创建工程。开始在STMCubeMX配置自己硬件。接下来就是优雅的开发啦!保存完工程点击关闭。然后把MX软件关闭。

qq_25219881的博客 872

[STM32] Stm32f103c8t6+ESP8266-01s+DHT11 实现向服务器上传温湿度数据

啦啦啦啦(这句是为了保存草稿用的,心情不错就不删了) 本篇文章内容总结下来就是 ESP8266-01s 1.常用AT指令 2.TTL串口使用AT指令上传数据 3.STM32利用串口2操作ESP8266-01s上传数据 DHT11 1.打印温湿度信息 2.通过STM32利用串口2操作ESP8266-01s上传DHT11读取到的温湿度数据这行字最多所以在多写一点反正没人会在意我写的文章有多水哈哈哈哈 这篇文章篇幅不小,是根据我亲身经历从刚刚接触ESP8266到能够熟练用单片机上传数据,其中

qq_41873771的博客 2万+

Win10系统VS2022开发环境中(X86)Win32汇编(MASM32)环境配置和一些示例源码及解释

Win10系统VS2022开发环境中Win32汇编(MASM32)环境配置和一些示例源码及对应的解释,还有一些问题点的处理说明

vily_lei的专栏 1万+

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

STM32使用ASR01语音播报模块

自己再根据鹿小班模块进行操作进行相关操作,先接上usb数据线。这里提供一套修改好的天问程序模板和stm32f103模板。这里使用的asr01语音播报模块是模块化编程。这里使用的asr01语音播报模块是模块化编程。记得先生成模型再去编译下载。先下载天问block软件。

lml1781978327的博客 1万+

手把手带你使用VSCode 搭建 STM32开发环境!

首先附上一张VS Code图一直都喜欢这种,黑色主题感觉高大上。

m0_61687959的博客 6098

STM32物联网(ESP-01S模块及STM32和ESP-01S通信方式介绍)

本篇文章我们开始正式进入STM32物联网的专栏,在这个专栏中将会带大家学习使用STM32进行联网,联网模块的话主要就是使用到了ESP-01S WIFI模块进行联网操作。ESP-01S是一款基于ESP8266芯片的Wi-Fi模块,通常用于物联网(IoT)和嵌入式系统中。以下是一些ESP-01S模块的基本特性和信息:芯片: ESP-01S模块使用的主要芯片是Espressif Systems生产的ESP8266EX,这是一款高度集成的Wi-Fi芯片,具有强大的处理能力和Wi-Fi连接功能。

m0_49476241的博客 1万+

01-STM32基础

ST” 是指制造商 STMicroelectronics 的缩写。“M” 表示其是基于 ARM 的 Cortex-M 系列核心。“32” 则代表其为32 位微控制器(使用32个比特位来表示一个地址)。STM32 的常见系列1)内核(core):32位,高性能ARM Cortex-M3处理器,时钟72M,实际可超频一点2)IO口: STM32F103ZET6,144引脚,112个IO,大部分IO口都耐5V(模拟通道除外),支持调试:SWD 和 JTAG,SWD只要2根数据线3)存储器容量。

小玖工作坊-博客 6996

【STM32Cube_01】初识 STM32 Cube 生态系统

文章目录STM32Cube EcosystemSTM32Cube PC ToolsSTM32 Embedded SoftwareSTM32Cube MCU Packages底层库代码中间件代码用户代码STM32Cube Expansion STM32Cube Ecosystem STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单,并且100%开源免费。 在开始介绍之...

Mculover666的博客(嵌入式) 7327

QEMU pcie config空间访问机制

而pci_host_conf/data_le_ops的定义是在hw/pci/pci-host.c里,对于0xCF8端口的处理,因为是地址选通,所以只需要在write的时候记录、read的时候返回记录的值即可。而pci_host_config_write/read_common接口,在前256Bconfig空间的模拟中,也同样是会调用这个接口,所以后续的处理都是一样的。这是真实的硬件设计,而对于QEMU+KVM的虚机场景,显然是要基于硬件实现和虚拟化的需求设计虚机访问config空间的完整流程。

leiyanjie8995的博客 1953

【LVGL学习之旅 01】移植LVGL到STM32

一、前言 littlevgl是一个小型开源嵌入式 GUI 库(简称LVGL),界面精美,消耗资源小,可移植度高,支持响应式布局,全库采用纯 c 语言开发,移植上手简单。 littleVGL 的主要特性如下: • 具有非常丰富的内置控件,像 buttons, charts, lists, sliders, images 等 • 高级图形效果:动画,反锯齿,透明度,平滑滚动 • 支持多种输入设备,像 touchpad, mouse, keyboard, encoder 等 • 支持多语言的 UTF-8 编码 •

qq_40831286的博客 3万+

汽车电子开发必看:AUTOSAR MCAL层SPI驱动配置全解析(基于EB tresos)

本文深入解析了AUTOSAR MCAL层SPI驱动的核心配置,基于EB tresos工具详细阐述了通道、外部设备、作业与序列等关键概念。重点剖析了多设备共享总线时的资源管理与实时性调优策略,特别是SpiJobPriority参数的决定性影响,并提供了常见配置陷阱的实战排查指南,旨在帮助汽车电子工程师高效完成SPI驱动配置。

weixin_29188043的博客 293

STM32驱动ESP01(HAL库)

实测VCC接5V通信将不正常。

m0_63127436的博客 3561

生信分析服务MR孟德尔随机化单细胞测序转录组数据分析网络药理学

通过上述技术整合,可实现从基因-环境-疾病关联到药物机制解析的全链条研究,为疾病机制解析和药物研发提供新思路。结合,是当前生物信息学领域的前沿方法,尤其在疾病机制解析、靶点发现和药物研发中展现出巨大潜力。

matlabgoodboy的博客 1520

ESP32-S3数字麦克风入门:手把手教你用Arduino IDE读取MSM261S4030H0R的I2S数据

本文详细介绍了如何使用Arduino IDE读取MSM261S4030H0R数字麦克风的I2S数据,涵盖硬件连接、代码编写和数据可视化全流程。重点解决I2S引脚配置、环境噪声过滤和声波观察等实际问题,适合ESP32-S3开发者快速上手数字麦克风应用。

weixin_26742753的博客 318

江协科技STM32学习笔记(第01章 STM32简介及开发环境搭建)

江协科技STM32学习笔记(第01章 STM32简介及开发环境搭建)

xuhc_zd的博客 5016

利用makehumancommunity导入人体模型到COMSOL里(需要solidwork)

#makehumancommunity #solidwork #COMSOL

qq_41227634的博客 2158

STM32CubeMx wiht AI 初体验

File: 初使用STM32CubeMX 烧录AI极简model Tips: 没有图片的文章都是耍流氓,本文填充了大量的截图 Github: project1 Author: lebhoryi@rt-thread.com Date: 2020/07/02 文章目录0x00 嵌入式关联AI0x01 准备工作1.1 安装三个软件包1.2 PC端搭建一个极简网络0x02 使用CubeMx2.1 打开CubeMx & 选择 H743ZI2.2 导入软件包2.3 导入PC端训练好的模型2.4生成项目工..

lebhoryi 4387

基于C#的工业机器人上位机控制程序开发(搭配松下PLC+MC协议)

基于C#的工业机器人上位机控制程序开发,核心是上位机与松下PLC的MC协议通信和机器人控制的安全逻辑,而不是单纯的界面编写。在工控现场,程序的稳定性和安全性永远是第一位的——比如解耦通信逻辑、处理跨线程问题、添加安全互锁、记录操作日志,这些都是保证产线稳定运行的关键。新手在学习时,建议先跟着步骤搭建好环境,跑通基础的PLC通信和机器人控制功能,再逐步尝试进阶优化。数据模型化、通信封装化、逻辑模块化、UI解耦化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1239

【并发编程五】c++进程通信——共享内存(shared memmory)

现代操作系统,对于内存管理,采⽤的是虚拟内存技术,也就是每个进程都有⾃⼰独⽴的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A中 和 进程 B中 的虚拟地址是⼀样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。这样这个进程写⼊的东⻄,另外⼀个进程⻢上就能看到了,都不需要拷⻉来拷⻉去,传来传去,⼤⼤提⾼了进程间通信的速度。⽤了共享内存通信⽅式,带来新的问题,那就是如果多个进程同时修改同⼀个共享内存,很有可能就冲突了。那共享内存的⽅式,就很好的解决了这⼀问题。

junxuezheng的博客 1万+

STM32CubeIDE用DAP调试的超级无敌简单方法——2022.01.07

STM32CubeIDE作为ST生态中重要的一环,必然以支持自家的ST-LINK为第一要务。不过当我们手上没有ST-LINK只有其他调试器时也是可以debug和下载的,只需要做一丢丢的简单操作,下面这个方法个人觉得比网上大多数方法都要简单很多,不需要IDE外部的openocd喔。 ......

ZZZ_XXJ的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【STM32+ESP8266连接腾讯云物联网开发平台 2】STM32+ESP8266-01S连接腾讯云

文章目录前言一、硬件准备1.ESP8266-01S2. STM32F103C8T6核心板或者小开发板及其程序下载器二、软件准备1.STM32CubeMX2. MDK (Keil v5)3.程序实现流程三、STM32CubeMX 配置工程四、串口中断驱动编写五、AT指令配置ESP8266接总结 前言        昨天已经用ESP-12S成功连接上腾讯云物联网开发平台,并且还能用手机控制了,但是毕竟是在电脑上位机做的连接,还没有在STM3

qq1140920745的博客 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

STM32Duino 开发环境配置

STM32Duino:突然心血来潮,想到STM32Duino这个东西,就是在Arduino IDE 上开发STM32的板子。以前遇到过这种开发模式,但是没有亲自上手设置过。搞了大半天,查看了好多的文档和视频,大部分也都是成功设置了,但是我却搞不赢,不过最后还是鼓捣成功了(在开发环境的配置上的从来没有一帆风顺过) 踩坑:我就索性自己再写一个流程,再总结一下里面的坑! 需要准备的 STM32F1...

Gear Long 的博客 4249

【STM32】基于VSCode搭建STM32开发环境

vscode是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。然后将其余部分留给IDE。vscode集成了所有一款现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、以及代码片段收集等。Visual Studio Code(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和macOS等操作系统以及开源代码。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 2681
上一篇: SPI 访问从设备通讯流(字节流设置与一般化方法)
下一篇: 【2022年的STM32】 02-STM32总览
mcucpp
博客等级 码龄12年 56粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值