用STM32替换Arduino(在Arduino IDE中开发STM32)

一、引言

Arduino自从面世以来,因为编程简单,并且周边配件也很丰富,迅速在电子爱好者的圈子中流行起来。但是Arduino有一个比较严重的问题,就是性价比不高。性能和资源有限,但是价格却比较高。而性能比较好的片子(例如意法半导体的STM32F103xx),虽然性能比较好(72MHz主频,丰富的外设(SPI、IIC、多个USART、CAN等),并且片上存储也高达512k),但是编程却比较复杂。

在STM32中,为了点一个LED,还要进行各种初始化、时钟配置操作。在这种片子上编程,往往还要求用户对硬件了解比较深刻。所以,如果能够将STM32的高性能(相对)和arduino的用户友好结合起来,就再好不过了。而实际上,Maple早就做过这个工作了,针对STM32单独做了一套库,来兼容arduino的库。本文将详细介绍如何实现在STM32上,搭建开发环境,并使用Arduino的方法来编程。

二、准备工作

硬件:计算机;STM32C8t6 Blue Pill;ST-Link下载器 (或USB转TTL模块);MicroUSB线。 STLink,随便买个就行。 软件: 1、Arduino IDE:下载很慢…很慢… 2、STM Cube Programmer, (STLink 方案用,USB转TTL方案则用串口下载软件,)

3、重点来了……“Arduino_STM32库”和“Bootloader”(其实就是下载这个文件夹里面和你开发板小LED引脚对应的那个Bin文件就行)。 “Arduino_STM32库”有40多M,下载很慢,我下载好了,可以到我“”中去下载。网址:

三、安装

1、安装“Arduino_STM32库” 将库下载后解压到Arduino安装目录,文件件名称可以随便改。 2、安装驱动。 接上步,打开文件夹中的“…ArduinohardwareArduino_STM32driverswin”,右键管理员运行两个"*.bat"文件,安装驱动。

3、给单片机刷入“Bootloader”。本文用的是STLink方案,软件用的是STM Cube Programmer。没有STLink的可以用串口下载方案,本文不再赘述,可以。 注:本步骤本质就是将 "*.bin"二进制文件烧写进单片机,所以各种下载器理论上都是可以的。 STM Cube Programmer使用方法很简单,如下: 正确安装后一般会看到类似这样的虚拟串口,同时电脑会发出USB识别的"登登"声: 但是我安装后是这样的,之后证明也是可以用的(其实只要电脑能正确识别出串口,串口图标上没有黄色叹号就行)。 4、在IDE中安装开发板支持,不安装的话编译会报错,安装方法如下: 在搜索框中输入sam,安装arduino SAMD Boards (32-bits ARM Corter_M0+),我已经安装了,后面有绿色的“Installed”字样。

四、下载验证

准备完成,重启IDE(即Arduino软件),在工具菜单中选择STM单片机(没有的话去Arduino UNO 下面去找),然后选择对应的串口,就是刚才我们说的虚拟串口。 打开一个Blink的例子,电机左上角对号“√“编译,一般没有错误,因为是例子。然后点击右边的箭头下载到板子上,大功告成!!! LED亮: LED灭:

五、后记

简单试了一下,这种开发方法有好处也有坏处。 好处是复杂的初始化和配置函数都封装好了,比如说PWM设置的函数,把类似库函数封装好了,简单易用。

坏处是函数的参数类型和范围都得在库中翻,对人家的库不熟悉的话比较麻烦。或许以后STM32Cube MX+HAL库是趋势(有封装同时也能方便地查看寄存器操作)。

经验分享 程序员 微信小程序 职场和发展