MakerLab 发表于 2014-3-7 17:24:37

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

本帖最后由 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 IDEArduino 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文件。 如图:
http://ww3.sinaimg.cn/mw690/78d6d1a7tw1ec8murexk2j20gs06774n.jpg
使用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.txtlibraries   readme.md   variantscores       platform.txt    sloadhost    sloadhost.exe如果操作正确,打开或重启Arudino IDE后你就可以看到在Tools(工具)->Boards(板)菜单下多了几个栏目,类似于下图,IDE在各系统下的显示有所不同:
http://ww2.sinaimg.cn/mw690/78d6d1a7tw1ec8n4z3ks3j20j70inju5.jpg如果你可以看到多出的几个板子类型(板子数量和名称可能有差异),说明安装成功。可以开始你的编程之旅了。下面的板子是MakerLab Sun R1板子,板子接口/IO与Arduino 的Mega及Due板子兼容。
点击图片查看高清大图。STduino Sun Pinout. http://ww4.sinaimg.cn/mw690/78d6d1a7tw1ecclhpna3qj21kw146dvj.jpg 另一个板子,与Uno尺寸兼容

http://aliyun.demohour.com/project_photos-files-000-053-934-53934-large.png?1389255604
实际板子图片,oops,一条线忘了布{:soso_e127:}。
http://ww1.sinaimg.cn/mw690/78d6d1a7tw1eckm7ortv5j20sg0faq5n.jpg
下面是简单Blink演示

打开Arduino IDE选择MakerLab板子类型,如图:
http://ww1.sinaimg.cn/mw690/78d6d1a7tw1ec8q4540v9j20il0ildib.jpg
选择板子所在的串口,如图:
http://ww1.sinaimg.cn/mw690/78d6d1a7tw1ec8q46rlx6j20cn094gma.jpg
打开Arduino IDE自带的例子,Blink(闪烁LED),如图:
http://ww2.sinaimg.cn/mw690/78d6d1a7tw1ec8q489fdwj20io0indhu.jpg
无需做任何编辑,直接点击=>向右箭头上传到板子,如图正在上传中:
http://ww1.sinaimg.cn/mw690/78d6d1a7tw1ec8q49y9vsj20dr0jmgnd.jpg
上传完成,没有任何错误,如果有错误根据错误信息排查,一般为串口号不对,或STM32 core文件放置错误。
http://ww3.sinaimg.cn/mw690/78d6d1a7tw1ec8q4aufrej20dt0jk0ui.jpg
看板子上的LED已经开始闪烁了,Oh,yeah!!
http://ww1.sinaimg.cn/bmiddle/78d6d1a7jw1ec8pw0n1s0g2064064gu3.gif

水涌沧 发表于 2014-3-16 15:07:31

好东西,高级的STM32就这么写程序??!!太惊人了!!:funk::funk::funk::funk:

hmjack2008 发表于 2014-3-22 00:26:14

好东西…
可以用在一般的STM32开发板,
但I2C (Wire.h) 似乎编译会出错 !!
error: 'I2C_InitStructure' was not declared in this scope

larry.wong 发表于 2014-3-22 13:50:24

参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!:D

hmjack2008 发表于 2014-3-22 14:25:41

larry.wong 发表于 2014-3-22 13:50 static/image/common/back.gif
参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!

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

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

zzzddd9000 发表于 2014-3-29 21:06:22

喜欢这篇文章,恰好我也有这块开发板。

huang1234 发表于 2014-3-29 21:27:02

{:soso_e113:}好东西!

philhoo 发表于 2014-4-2 16:09:34

leaflabs Leaf maple mini ARM STM32 arduino 跟你这个差不多吧?

philhoo 发表于 2014-4-2 16:10:21

这样编程能发挥出STM32的优越性吗?

MakerLab 发表于 2014-4-5 11:13:39

水涌沧 发表于 2014-3-16 15:07 static/image/common/back.gif
好东西,高级的STM32就这么写程序??!!太惊人了!!

你如果是高手,直接用makefile和gcc是不错的选择。

MakerLab 发表于 2014-4-5 11:14:18

hmjack2008 发表于 2014-3-22 00:26 static/image/common/back.gif
好东西…
可以用在一般的STM32开发板,
但I2C (Wire.h) 似乎编译会出错 !!


是的,I2C还没调试通过,欢迎贡献代码。

MakerLab 发表于 2014-4-5 11:19:12

larry.wong 发表于 2014-3-22 13:50 static/image/common/back.gif
参否详细介绍一下对非标准STM32板的支持,因为楼主的板没开卖!

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

MakerLab 发表于 2014-4-5 11:20:00

zzzddd9000 发表于 2014-3-29 21:06 static/image/common/back.gif
喜欢这篇文章,恰好我也有这块开发板。

谢谢,欢迎贡献代码,完善代码

MakerLab 发表于 2014-4-5 11:21:56

philhoo 发表于 2014-4-2 16:09 static/image/common/back.gif
leaflabs Leaf maple mini ARM STM32 arduino 跟你这个差不多吧?

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

MakerLab 发表于 2014-4-5 11:23:43

philhoo 发表于 2014-4-2 16:10 static/image/common/back.gif
这样编程能发挥出STM32的优越性吗?

对于高手来说,肯定没有提现,因为都是用的官方库函数,但是真正的高手应该是直接操作寄存器的。当然对于新手来说,特别是对arduino有点熟悉的朋友,可以很快开始研究和使用STM32
页: [1] 2 3
查看完整版本: 让Arduino IDE开始支持你的STM32 arm芯片