MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入
MakerLab创客实验室  ›  STduino原型板如何使用(Arduino Compatible)
37

如何让你的Arduino IDE支持STM32开发板

想学STM32的32位ARM单片机,但不想读1000页的技术文档?
成千上万个寄存器或ST官方API接口需要记忆?
按照例子敲了几十行代码了,却无法点亮一个LED?
难用并且盗版的IDE让你头疼?

如果上面的问题让你感觉学习STM32单片机很困难,那么,下面我将介绍给你一个:
扔掉1000页的技术文档;
忘记ST官方API接口;
三五行代码点亮LED;
正版好用的IDE;
基于Arduino IDE开发STM32单片机的方式。

什么是Arduino

如果你学习单片机,研究电子硬件,做创意产品和设计,甚至做艺术设计,但却没听说过Arduino,那你真的Out了。
Arduino及其兼容的开发板、学习板是全球最大的开源硬件原型平台,没有之一。

Arduino具有两个其它平台难以企及的优势:
1、编程语言采用Arduino programming language(基于Wiring),与C++的语法非常接近;
2、Arduino IDE(基于Processing),支持windows,linux,Mac OS的简单好用的编程IDE。

由于Arduino平台的这两个优势,使得越来越多的硬件平台向Arduino靠拢,越来越多的Arduino Compatible的板子不断诞生。现在开发一个原型板,不说Arduino Compatible你都不好意思跟别人说。

ARM的兴起

随着嵌入式CPU的发展,ARM核心的CPU成为了为了发展的趋势。尤其是像ST推出的低价却高性能的STM32基于ARM核心的CPU,使得ARM的价格已经跟8位8051单片机价格差不多了。没有什么理由不迎接新的ARM时代了。

如何让Arduino IDE支持STM32单片机(STM32F103系列)

现在可以直接下载我打包好的IDE,就不需要自己导入库文件了,下载地址:
http://pan.baidu.com/s/1hq9xgu4
下载后解压,直接运行就可以了,串口驱动还需要安装。

1、下载Arduino IDE

Arduino IDE是非常棒的编程工具,我没有必要重新创造轮子,所以下载官方Arduino IDE(`需要1.5版本以后)就可以,并且原生支持中文。下载地址:
windows版本:http://downloads.arduino.cc/arduino-1.5.5-windows.exe
Mac OS版本:http://downloads.arduino.cc/arduino-1.5.5-macosx.zip
linux版本:32位64位

下载后安装即可。

2、下载STM32 Core文件及安装

为了让Arduino IDE支持STM32单片机及开发板,你需要下载由MakerLab开发的STM32文件。Github地址:
https://github.com/MakerLabMe/STM32_Arduino_Cores

直接下载zip压缩包
首先找到Arduino的安装目录,windows系统的默认安装目录是C:\Program Files\Arduino,然后依次进入hardwarearduino目录;
Mac系统下是在Applications目录下或其它你安装的位置下,名称位Arduino.app的程序,然后右键点击该程序,选择Show Package Contents弹出新的目录,再一次进入Contents/Resources/Java/hardware/arduino目录;
然后下载ZIP压缩包( https://github.com/MakerLabMe/STM32_Arduino_Cores/archive/forIDE1.5.8.zip ),解压到上面提到的目录中,文件名称必须是stm32,安装完成后的目录结构应该是:

hardware/arduino目录下包含三个文件夹,分别是:avr 、sam和stm32,其中stm32文件夹内就是刚刚解压的core文件。 如图:  


使用Git安装

#首先来到Arduino的安装目录然后git clone:   
hardware/arduino > git clone https://github.com/MakerLabMe/STM32_Arduino_Cores.git stm32
hardware/arduino > cd stm32
#完成后,stm32文件夹内应该是这样的:
hardware/arduino/stm32 > ls
firmwares programmers.txt system
boards.txt libraries readme.md variants
cores platform.txt sloadhost sloadhost.exe

如果操作正确,打开或重启Arudino IDE后你就可以看到在Tools(工具)->Boards(板)菜单下多了几个栏目,类似于下图,IDE在各系统下的显示有所不同:

如果你可以看到多出的几个板子类型(板子数量和名称可能有差异),说明安装成功。可以开始你的编程之旅了。

下面的板子是MakerLab Sun R1板子,板子接口/IO与Arduino 的Mega及Due板子兼容。
我的淘宝店:MakerLab
点击图片查看高清大图。STduino Sun Pinout.

STduino原型板如何使用(Arduino Compatible) Andy 2 年前 最后回复来自 Andy
8

点亮第一盏LED

本文所介绍的是由MakerLab开发的可以直接兼容Arduino IDE自带例子的原型板,如何配置让IDE也支持你的STM32开发板,请参考下一篇文章。

准备工作:

硬件:一个MakerLab 原型板,本试验使用Sun R1如下图,和一条USB线;
软件:下载并配置好STM32支持Core文件的Arduino IDE;

接线

用usb线连接电脑及Sun板子的靠近电源接口的usb口(编程接口),如图:

连接后,板子上的电源指示(标记位ON)灯会亮。

安装驱动

由于板子使用了一个USB转串口芯片(cp2102),第一次使用需要安装驱动程序,驱动下载地址:
windows: http://www.silabs.com/Support%20Documents/Software/CP210x_VCP_Windows.zip
Mac OS:http://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip
Linux:
3.x.x内核:http://www.silabs.com/Support%20Documents/Software/Linux_3.x.x_VCP_Driver_Source.zip
2.6.x内核:http://www.silabs.com/Support%20Documents/Software/Linux_2.6.x_VCP_Driver_Source.zip

安装成功后,在windows设备管理器中可以看到对应的设备及串口号(一会儿会用到).

打开Arduino IDE选择MakerLab板子类型,如图:

选择板子所在的串口,如图:

打开Arduino IDE自带的例子,Blink(闪烁LED),如图:

无需做任何编辑,直接点击=>向右箭头上传到板子,如图正在上传中:

上传完成,没有任何错误,如果有错误根据错误信息排查,一般为串口号不对,或STM32 core文件放置错误。

看板子上的LED已经开始闪烁了,Oh,yeah!!

代码,只需要10行代码就可以实现LED闪烁。

int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

STduino原型板如何使用(Arduino Compatible) Andy 3 年前 最后回复来自 Andy
11

让Arduino IDE支持你自己的STM32开发板

想让自己的STM32开发板也可以使用Arduino IDE及arudino所提供的简单的API?没问题,下面我将告诉你如何添加你自己板子的支持。

硬件支持

由于STduino使用的编程方式为STM32自带的USART的isp方式。所以需要配置BOOT0来选自不同的启动方式。STduino的硬件设计是通过一个USB转串口来控制BOOT0的,但如果你自己的板子不支持,需要选择另外的编程方式比如JTAG等。也可以用我们的串口编程器。

关键文件

要想让Arduino IDE支持你自己的STM32开发板,需要配置以下几个文件。
boards.txt:配置你的板子的名称等基本信息及板子pins(管脚)配置文件的目录地址;
variant.h:一些常用变量的配置信息;
variant.cpp:pins配置信息。
platform.txt:该文件如果不更改上传代码的方式,不需要修改。

STduino原型板如何使用(Arduino Compatible) Andy 4 年前 最后回复来自 Andy
3

如何实现串口自动下载

使用了usb转串口的DTR和RTS两个管脚来控制cpu的状态,其中DTR控制reset管脚,也就是控制芯片是否复位,RTS控制BOOT0管脚,也就是是否进入bootloader模式,请参考我的原理图:
http://pan.baidu.com/s/1nt432yt

原理图中可能缺少BOOT1的电路,这个管脚可以作为普通IO使用,但需要一个下拉电路到GND(10K即可),也就是这个IO只能是低或高,不能作为高阻抗来使用。如果不加这个下拉电阻,cpu不会正常工作,请注意

STduino原型板如何使用(Arduino Compatible) Andy 3 年前 最后回复来自 Andy