将你的STM32搞成Arduino(一)

接触STM32有一年半了从刚开是的懵懂无知到现在的拉个库就是干,我慢慢的发现STM3功能的强大已经配套环境的完整程序,他不像是51单片机那样已经被intel抛弃,之后也没人出一个官方的库,一切都是纯生的需要自己搭建。STM32标准库已经为你搭建好了一个完整的环境,仅仅需要去调用就好了。更甚至ST为了推广F4、F7、H7系列的单片机推出了CubeMX+HAL/LL库,虽然对于已经用惯了标准库的大佬们迁移来说很简单,但是对于刚刚开始单片机深坑之旅的小伙伴们来说学习的成本还是有电高。

国外的大佬Roger Clark在Github上有一个开源的项目,可以将Stm32F103系列单片机刷入Arduino的Bootloader,并且使用Arduino的编译器和IDE来完成代码的编写,省去了一大部分配置寄存器和学习的时间,可以让新手小白拿到之后就可以直接怼!

下面介绍三种食用的打开方式:

  • 方式1:直接使用串口烧录和使用

Step1:我们首先需要从Git上下载大佬的项目文件(https://github.com/rogerclarkmelbourne),在他的Git仓库中有两个我们需要下载的项目集,分别是“Arduino_STM32-master”和“STM32duino-bootloader-master”。“Arduino_STM32-master”文件是我们需要使用的STM32的支持库需要将其导入到Arduino的IDE之后IDE才可以编译,并且生成STM32可以使用的hex程序文件。因为不管是Arduino UNO还是Arduino mega 2560他们的内核都是AVR的,和STM32 的ARM内核是相同的。如果不导入安装这个库文件的话就无法编译生成STM32 对应的hex文件。

将你的STM32搞成Arduino(一)_第1张图片

Step2:下载完成之后将Arduino_STM32-master.zip解压并且将其更名为“arduino_STM32”。然后找到你的Arduino的安装路径,默认是在“C:\Program Files (x86)\Arduino\”当然也可能在其他的地方,你可以使用Arduino IDE桌面的图标来寻找他的安装目录,右键IDE图标并且点击属性菜单栏,即可看到IDE的安装位置。将“arduino_STM32”文件夹复制到Arduino编译根目录下的hardware文件夹中。

将你的STM32搞成Arduino(一)_第2张图片

Step3:复制完成之后打开,打开IDE(如果刚才你打开了需要关闭从新启动IDE才会加载刚才你复制进去的文件)我们需要添加STM32的相关文件,单击菜单栏中的工具->开发板->开发板管理器。

将你的STM32搞成Arduino(一)_第3张图片

在开发板管理器中搜索我们所要使用的STM32相关的配套文件,如果是使用的是STM32F103系列就安装M3的配套文件,如果使用的是F104系列就添加M4的配套文件。

 

在安装完成配套文件之后就可以在工具->开发板 中看到许多STM32有关的开发板了。

将你的STM32搞成Arduino(一)_第4张图片

选定我们使用的相应的STM32单片机的型号即可,如果使用的是正点原子的战舰或者精英版就选择STM32F103Z(二者的芯片均为STM32F103ZET6),如果是正点原子的mini版就采用STM32F103R(芯片为STM32F103RBT6)其他的原理类似。

我们本次讲解使用的是淘宝上只要搜索“STM32最小系统”就会找到的最常见的STM32C8T6单片机,为什么要采用这款单片机呢,因为在外观上他和Arduino nano的大小较为相似,价格也较为的便宜最贵也就不到20元,一般都在13元左右。其他的原因我将在后面的提及不要着急。

将你的STM32搞成Arduino(一)_第5张图片

这款开发板板子的没有ch340G下载芯片因此我们需要一个usb转TTL下载器并且将其连接在开发板的串口1上,根据STM32F103权威指南我们可以知道串口1的烧录引脚是在PA9和PA10上的。因此我们要将下载器和单片机相连接:TX -----》PA10、RX-----》PA9、VCC-----》VCC、GND-----》GND。

将你的STM32搞成Arduino(一)_第6张图片

别问我啥是USB转TTL,这都不知道玩神马硬件!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在连接好之后就需要打开你电脑的设备管理器然后查看你连接的USB转TTL设备所占用的COM口的编号,之后就可以在我们的IDE中将:工具-->端口号设置为刚才我们在设备管理器中看到的端口号即可,然后开始编译下载我们的程序就可以了,和你日常使用Arduino Uno一样。(备注:我们在使用Arduino编译器中的STM例程中的Blink时需要将IO修改成PC13,因为小蓝板的LED是在PC13上的)。

最后烧录成功之后会如图所示。

你可能感兴趣的:(Arduino)