在Arduino IDE中搭建STM32开发环境
STM32简介STM32 是意法半导体 (STMicroelectronics) 推出的 32 位 ARM Cortex-M 内核微控制器系列‌根据 ST 海外官网信息该系列涵盖从入门级到高性能的多种型号支持多种通信接口和外设广泛用于嵌入式开发 。‌‌发展历史意法半导体STMicroelectronics集团于1987年6月成立是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司意法半导体是世界最大的半导体公司之一。从成立之初至如今ST的增长速度超过了半导体工业的整体增长速度。自1999年起ST始终是世界十大半导体公司之一。据最新的工业统计数据意法半导体STMicroelectronics是全球第五大半导体厂商在很多市场居世界领先水平。例如意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商世界第一大工业半导体和机顶盒芯片供应商而且在分立器件、手机相机模块和车用集成电路领域居世界前列。意法半导体STMicroelectronics整个集团共有员工近50000名拥有16个先进的研发机构、39个设计和应用中心、15主要制造厂并在36个国家设有78个销售办事处。公司总部设在瑞士日内瓦同时也是欧洲区以及新兴市场的总部公司的美国总部设在德克萨斯州达拉斯市的卡罗顿亚太区总部设在新加坡日本的业务则以东京为总部中国区总部设在上海负责香港、大陆和台湾三个地区的业务。ST超低功耗ARM Cortex™-M3微控制器STM32L系列产品基于超低功耗的ARM Cortex-M4处理器内核采用意法半导体独有的两大节能技术130nm专用低泄漏电流制造工艺和优化的节能架构提供业界领先的节能性能。该系列属于意法半导体阵容强大的32位STM32微控制器产品家族该产品家族共有200余款产品全系列产品共用大部分引脚、软件和外设优异的兼容性为开发人员带来最大的设计灵活性。ST超低功耗ARM Cortex™-M0微控制器STM32F0系列产品基于超低功耗的ARM Cortex-M0处理器内核整合增强的技术和功能瞄准超低成本预算的应用。该系列微控制器缩短了采用8位和16位微控制器的设备与采用32位微控制器的设备之间的性能差距能够在经济型用户终端产品上实现先进且复杂的功能。 [2]互联型全新STM32互联型Connectivity系列微控制器增加一个全速USBOTG接口使终端产品在连接另一个USB设备时既可以充当USB主机又可充当USB从机还增加一个硬件支持IEEE1588精确时间协议PTP的以太网接口用硬件实现这个协议可降低CPU开销提高实时应用和联网设备同步通信的响应速度。全新互联型系列还是STM32家族中首款集成两个CAN2.0B控制器的产品让开发人员能够研制可连接两条工业标准CAN控制器区域网总线的网关设备。此外新系列微控制器还支持以太网、USB OTG和CAN2.0B外设接口同时工作因此开发人员只需一颗芯片就能设计整合所有这些外设接口的网关设备。STM32互联型系列产品强化了音频性能采用一个先进的锁相环机制实现音频级别的I2S通信。结合USB主机或从机功能STM32可以从外部存储器U盘或MP3播放器读取、解码和输出音频信号。设计人员还可以在新系列微控制器上开发人机界面HMI功能如播放和停止按键以及显示器界面。这个功能使其可用于各种家庭音响设备如音响底座系统、闹钟/音乐播放器和家庭影院。新系列产品整合先进的面向连接的外设标准的STM32外设包括一个PWM定时器高性能的32位ARM Cortex-M3 CPU这些特性使开发人员可以在设备上如家电、楼宇或工业自动化整合多种功能如马达控制、用户界面控制和设备互连功能。其它目标应用包括需要联网、数据记录或USB外设扩展功能的系统如病患监视、销售终端机、自动售货机和保安系统。包括新的互联型系列在内的STM32系列微控制器具有多种配套软件和开发工具其中包括意法半导体免费提供的软件库以及第三方工具厂商的广泛支持。意法半导体还将推出一个新的评估板正在向大客户提供STM32F105和STM32F107互联型系列的样片。STM32 有啥特点和用途‌核心特点‌STM32 基于 ARM Cortex-M0/M0/M3/M4/M7/M33/M55 等多种内核架构具有高性能、低功耗、低成本的优势工作电压范围通常为 1.7V 至 3.6V。‌性能范围广‌主频从 32MHz 到 500MHz 不等Flash 容量从 16KB 到 2MBSRAM 从 4KB 到 1MB。‌低功耗设计‌提供休眠、停止、待机等多种低功耗模式待机电流可低至 2μA。‌外设丰富‌集成 ADC、DAC、定时器、USART、SPI、I2C、USB、CAN 等多种外设接口 。‌‌‌主要应用领域‌‌工业控制‌电机驱动、生产线控制、机械臂操作等 。‌物联网设备‌智能传感器、电燃气表、血糖仪等医疗设备 。‌消费电子‌智能家居中枢、可穿戴设备、家电控制等 。‌汽车电子‌车身控制、车载信息系统等 。‌‌‌产品系列分类‌‌主流系列‌STM32F0/F1/F3/G0/C0性价比高适合通用控制场景 。‌超低功耗系列‌STM32L0/L4/L5/U5适合电池供电设备 。‌高性能系列‌STM32F4/F7/H7/H5/N6支持 AI 加速和复杂计算 。‌无线系列‌STM32WB/WBA/WL集成蓝牙、Zigbee、LoRa 等无线功能 。‌微处理器系列‌STM32MP1/MP2支持 Linux 系统适合边缘计算 。‌‌‌开发 STM32 用啥软件‌官方开发工具链‌‌STM32CubeMX‌图形化配置工具可设置引脚、时钟、外设参数自动生成初始化代码 。‌STM32CubeIDE‌集成开发环境基于 Eclipse支持代码编辑、编译、调试一体化 。‌STM32CubeProgrammer‌用于代码烧写和固件升级 。‌ST-LINK 调试器‌官方在线调试和编程工具从 V2 发展到 V3 系列 。‌‌‌‌第三方开发环境‌‌Keil MDK-ARM‌老牌 ARM 开发工具社区资源丰富 。‌IAR Embedded Workbench‌商业 IDE优化性能好 。‌PlatformIO‌开源跨平台开发工具支持 VS Code 集成 。‌Arduino (STM32duino)‌适合初学者快速上手 。‌‌‌‌操作系统支持‌‌FreeRTOS‌轻量级实时操作系统广泛使用 。‌Zephyr RTOS‌开源物联网操作系统 。‌Linux‌STM32MP 系列可运行 OpenSTLinux、Android 等系统 。‌‌国产替代方案情况‌国产 MCU 品牌‌‌兆易创新 (GigaDevice)‌GD32 系列与 STM32F1/F3/F4 等引脚兼容是国内出货量较大的替代方案。‌华大半导体‌HC32 系列覆盖低功耗和通用控制场景。‌雅特力‌AT32 系列主打高性能和高性价比。‌国民技术‌N32 系列注重安全加密功能。‌兼容性说明‌多数国产 MCU 在引脚排列、外设功能上与 STM32 保持高度兼容代码迁移成本较低。但寄存器细节、时钟配置、中断优先级等可能存在差异需参考具体型号数据手册。开发工具链方面部分国产芯片支持 STM32Cube 工具部分需使用厂商自有工具。‌选择建议‌如果对供应链安全有要求可优先考虑国产方案。如果项目依赖 STM32 特定生态如官方库、社区资源建议继续使用 STM32。新设计可评估国产芯片的供货稳定性和技术支持能力。本次主要使用到的模块型号是STM32F103C8T6引脚图如下Arduino IDE简介Arduino IDE 是 Arduino 官方免费、开源、跨平台的集成开发软件专门用于给 Arduino 系列单片机Uno、Nano、Mega、ESP32 兼容板等编写、编译、烧录程序并支持硬件串口调试是嵌入式、创客入门最主流的开发工具。两大版本区别版本内核现状优缺点IDE 1.x最终版 1.8.19经典旧版Java仅维护高危漏洞不再新增功能占用小、老旧电脑流畅界面简陋无代码补全、调试功能IDE 2.x当前最新版推荐使用基于 Eclipse Theia对标 VSCode 内核官方主力持续更新界面现代化、自动补全、内置调试器、串口绘图、多标签编辑、库 / 板管理器更顺滑新手直接下载 IDE 2.x 最新版 即可支持 Windows/macOS/Linux 64 位系统。官方下载地址官网https://www.arduino.cc/en/softwareWindows.exe安装包 / 绿色便携 zip 包macOS.dmg镜像文件LinuxAppImage 免安装文件要在Arduino IDE中开发STM32微控制器您需要安装适当的硬件支持包。以下是详细步骤1 安装Arduino IDE首先确保您已安装最新版本的Arduino IDE从[Arduino官网](https://www.arduino.cc/en/software)下载并安装使用管理员身份运行打开安装包再点击我同意。选择为使用这台电脑的任何人安装点击下一步。选择安装位置点击安装。安装好了点击完成。2添加STM32硬件支持方法一通过Arduino IDE的板管理器安装打开Arduino IDE点击文件 首选项3.在其他开发板管理器地址字段中添加以下URLhttps://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json(如果有多个URL用逗号分隔)点击确定保存。4. 打开开发板管理器5.搜索STM326. 找到STM32 MCU based boards并点击安装方法二手动安装备用方法下载STMicroelectronics文件。放到Arduino的硬件文件夹中,如果没有hardware文件夹可以新建一个。Windows: Documents\Arduino\hardware通过网盘分享的文件ArduinoIDE链接: https://pan.baidu.com/s/118V_9xgmC-syK-oqqqJSvg 提取码: dqky3 安装所需工具链手动安装工具STM32CubeProgrammer或去网上下载下载地址STM32CubeProg | STMCU中文官网4 选择开发板和配置连接您的STM32开发板到电脑可以使用ST-LINK V2连接还可以使用USB转TTL串口连接。使用USB转TTL串口板RX接PA9TX接PA10下载时BOOT0需至1。2.在Arduino IDE中选择正确的开发板工具 开发板 STM32 Boards选择具体型号选择正确的板子变体选择上传方法通常为使用ST-LINK接口选STM32CubeProgrammer (SWD)或使用USB TO TTL接口选 Serial5 新建项目点击文件 新建项目就可以进行程序编写。6 接线STM32连接ST-LINK V2STM32ST-LINK V23.33.3SWDSWDSWCLKSWCLKGNDGNDSTM32连接USB TO TTLSTM32USB TO TTL3.33.3GNDGNDA9RXDA10TXD7安装驱动程序如果需要某些STM32板可能需要USB驱动程序STM32F1系列如Blue Pill通常需要安装[ST-Link驱动](https://www.st.com/en/development-tools/stsw-link009.html)对于串口上传可能需要安装CH340/CH341驱动常见于中国制造的板子8测试安装上传一个简单的Blink示例void setup() { pinMode(PC13, OUTPUT); // 对于Blue Pill等板子LED通常在PC13 } void loop() { digitalWrite(PC13, HIGH); delay(1000); digitalWrite(PC13, LOW); delay(1000); }常见问题解决1.上传失败检查板子选择是否正确检查USB线是否可靠连接尝试按复位按钮在上传开始时2.串口不识别检查设备管理器中的端口安装必要的驱动程序3.编译错误确保安装了所有必要的库检查Arduino IDE版本是否最新