极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 127281|回复: 43

让Arduino IDE开始支持你的STM32 arm芯片

  [复制链接]
发表于 2014-3-7 17:24:37 | 显示全部楼层 |阅读模式
本帖最后由 MakerLab 于 2014-3-8 16:48 编辑

STM32 芯片的性价比就不用说了。几乎甚至低于Arduino板子上用的AVR单片机。

所以搞了个Arduino IDE的core文件,从此可以让Arduino IDE支持STM32F103的中密度、高密度全系列芯片(其它型号稍作改动也可支持)。
说明:只支持Arduino IDE 1.5以后的版本。

开源
core文件代码是开源的,欢迎大家使用,本人水平有限,也希望大家一起来开发优化,以及对第三方库的移植。

源码地址:https://github.com/MakerLabMe/MakerLabBoard

如何使用

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/MakerLabBoard

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

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

使用Git安装
#首先来到Arduino的安装目录然后git clone:   hardware/arduino > git clone https://github.com/MakerLabMe/MakerLabBoard.git stm32hardware/arduino > cd stm32#完成后,stm32文件夹内应该是这样的:   hardware/arduino/stm32 > lsfirmwares   programmers.txt systemboards.txt  libraries   readme.md   variantscores       platform.txt    sloadhost    sloadhost.exe

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

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

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

另一个板子,与Uno尺寸兼容


实际板子图片,oops,一条线忘了布{:soso_e127:}。

下面是简单Blink演示

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

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

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

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

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

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


回复

使用道具 举报

发表于 2014-3-16 15:07:31 | 显示全部楼层
好东西,高级的STM32就这么写程序??!!太惊人了!!
回复 支持 反对

使用道具 举报

发表于 2014-3-22 00:26:14 | 显示全部楼层
好东西…
可以用在一般的STM32开发板,
但I2C (Wire.h) 似乎编译会出错 !!
error: 'I2C_InitStructure' was not declared in this scope
回复 支持 反对

使用道具 举报

发表于 2014-3-22 13:50:24 | 显示全部楼层
参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!
回复 支持 反对

使用道具 举报

发表于 2014-3-22 14:25:41 | 显示全部楼层
larry.wong 发表于 2014-3-22 13:50
参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!

LZ的这篇算是厚道… 无私的分享了源码, 却没打广告 !!
实际上 若用百度或淘宝搜寻 MakerLab便可发现更多信息.

我是用LZ的工具 点选”编译(验证)” , 不是点选”上传”, 这样编译出来的 .bin文件就可以用STM32的 ST-LINK Utility烧录进去.
回复 支持 反对

使用道具 举报

发表于 2014-3-29 21:06:22 | 显示全部楼层
喜欢这篇文章,恰好我也有这块开发板。
回复 支持 反对

使用道具 举报

发表于 2014-3-29 21:27:02 | 显示全部楼层
{:soso_e113:}好东西!
回复 支持 反对

使用道具 举报

发表于 2014-4-2 16:09:34 | 显示全部楼层
leaflabs Leaf maple mini ARM STM32 arduino 跟你这个差不多吧?
回复 支持 反对

使用道具 举报

发表于 2014-4-2 16:10:21 | 显示全部楼层
这样编程能发挥出STM32的优越性吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:13:39 | 显示全部楼层
水涌沧 发表于 2014-3-16 15:07
好东西,高级的STM32就这么写程序??!!太惊人了!!

你如果是高手,直接用makefile和gcc是不错的选择。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:14:18 | 显示全部楼层
hmjack2008 发表于 2014-3-22 00:26
好东西…
可以用在一般的STM32开发板,
但I2C (Wire.h) 似乎编译会出错 !!

是的,I2C还没调试通过,欢迎贡献代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:19:12 | 显示全部楼层
larry.wong 发表于 2014-3-22 13:50
参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!

两点:
1、如果只是编译,任何MD和HD的芯片都可以用,可能需要修改variant.c文件里的IO表;
2、如果想实现自动上传的功能,需要硬件的支持,主要是通过usb转串口,并通过DTR和RTS控制复位和BOOT0.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:20:00 | 显示全部楼层
zzzddd9000 发表于 2014-3-29 21:06
喜欢这篇文章,恰好我也有这块开发板。

谢谢,欢迎贡献代码,完善代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:21:56 | 显示全部楼层
philhoo 发表于 2014-4-2 16:09
leaflabs Leaf maple mini ARM STM32 arduino 跟你这个差不多吧?

是的,差不多。区别在于,我用了STM32的官方库,意味着,官方库的函数都可以调用,对熟悉了官方库的朋友来说学习成本较低。另外我这个是让官方IDE增加对STM32的支持,不需要定制版本的IDE。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 11:23:43 | 显示全部楼层
philhoo 发表于 2014-4-2 16:10
这样编程能发挥出STM32的优越性吗?

对于高手来说,肯定没有提现,因为都是用的官方库函数,但是真正的高手应该是直接操作寄存器的。当然对于新手来说,特别是对arduino有点熟悉的朋友,可以很快开始研究和使用STM32
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 12:46 , Processed in 0.043392 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表