迷你强 发表于 2016-8-31 16:17:54

【玩STM32】如何用arduino语法来玩STM32(一)

本帖最后由 迷你强 于 2017-4-30 10:10 编辑

【玩STM32】如何用arduino语法来玩STM32(一)本项目开源方案源自:https://github.com/rogerclarkmelbourne/Arduino_STM32 特此申明大家都知道STM32系列芯片属于那种价格便宜量又足的处理器,速度搜搜的还资源足,非常适合做一些相对于复杂比较消耗系统资源的项目,各arduino系小伙伴眼红不已,本系列文章就讲解下如何在arduino代码体系下使用STM32首先介绍硬件平台,因为暂时我们没有开发基于STM32的alpha硬件环境,所以就在淘宝随便买了一款。此款主板使用STM32F103C8T6处理器,外面扔了一堆的IO口,并且将USB口接出来了。属于做工比较粗糙但是价格便宜的产品(注意LED灯标示为PC13,就是说这颗灯接在了PC13管脚上)首先我们要准备好将普通的STM32板子变成支持arduinoIDE的设备,所以要下载bootloader下载工具:bootloader:两个压缩包,第一个包包是用来下载bootloader的下载工具,第二个就是bootloader文件本省啦。新买的板子一般都没有预制arduino用的bootloader,所以我们先要找个usb转TTL电平的UART硬件(就是TTL串口)来给下载一下,推荐OCROBOT alpha CP2104阅读STM32 C8T6的手册得知,这款芯片的串口在PA9(TX)和PA10(RX)上面,然后我们将他与串口模块进行连接,并且将BOOT0的跳线设置为1,这样就进入了串口编成模式(接线图如下表)
STM32CP2104
PA9RX
PA10TX
5V5V
GNDGND
如下图
这样就可以开始下一步了,之前我们下载好的两个文件,首先解压缩down压缩包,里面有两个工具,其实是一样的一个python文件,一个exe文件,我们用exe的假设我将文件解压缩到了D盘,目录是D:down然后解压缩bootloader目录,里面有很多的文件,其实也都是一样的,后面的后缀,代表LED灯默认接在了哪个管脚,其实区别不大的,我们的板子刚好是PC13就将generic_boot20_pc13.bin这个文件复制到down目录下看起来是这样的好了,正式开始下载bootloader,首先我们按 徽标键+R 打开启动菜单,输入cmd回车会出现一个命令窗口然后我们将目录切换到刚才文件夹放置的位置,首先切换到D盘 输入 D: 回车再输入 cd down回车
接下来我们就开始下载固件咯,输入命令 stm32flash.exe -w generic_boot20_pc13.bin -v -g 0x0 COM14其中COM14是我的串口设备的设备号,请根据自己的实际情况确定这样就下载好了,将线头都拔干净,并且将跳线恢复,这些东西基本都用不着了,目前USB接口就正常可用了。开始使用arduino版本的STM32首先,要去装驱动,因为你接到电脑上是这个德行的
下载这个驱动包: 解压缩后是这个德行的,双击红圈的文件,然后遇到授权提示全部点是 就会给你装好装好后就变成这样了这样就OK咯。。。IDE部分介绍
先下载OCROBOTO IDE: http://www.ocrobot.com/doku.php?id=zh:downloads
下载最新版本即可

当然啦,先打开我们的IDE打开工具菜单下的开发板管理器,安装STM32系统支持点击安装STM32支持包耐心等待,等进度条消失就安装完毕然后就可以选择板子啦,我们选择F103C系列板卡子选项卡也很简单,第一项选择C8系列板卡,通讯方式选择bootloader第一次端口不会出com口号,所以不用选择,直接下载程序好了程序
void setup() {
pinMode(PC13, OUTPUT);
}
void loop() {
digitalWrite(PC13, HIGH);   
delay(1000);            
digitalWrite(PC13, LOW);   
delay(1000);
}

下载成功,会有一个提示找不到文件的错误,不过没有任何影响啦,管脚遵循了STM32的表示方式,其他基本没区别

硬件效果
我们再来测试下串口通信看看是否好用(注意,刚才通讯过后,设备会有端口号了,注意在板卡选项卡里选择上)
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("hello OCROBOT~!");
delay(1000);
}

测试效果


好了初步教程就到这一步了,改天再介绍其他的硬件设施,如I2C SPI或者其他串口和adc的特征


kevin.Lv 发表于 2017-5-29 16:21:40

老是失败,不知道什么原因

zjhyhky 发表于 2016-9-9 00:32:30

本帖最后由 zjhyhky 于 2016-9-9 00:33 编辑

弘毅 发表于 2016-9-8 19:55
难道是精简版系统引起的?

可能是,家里和笔记本用的是同一个精简版win7,单位里是正版win7

前面百度来的方法无效。

还有种可能,我原来系统装过maple的驱动,不知道会否有影响。

太行摄狼 发表于 2017-5-10 11:43:58

Win7 下Maple驱动问题解决方案
https://my.oschina.net/quanpower/blog/378922
谁英文好去翻下墙

HuaShine2015 发表于 2016-8-31 20:01:16

不错,学习一下

大笨球咯 发表于 2016-8-31 20:09:24

号玩具~赞一个!

microplc 发表于 2016-8-31 21:06:30

本帖最后由 microplc 于 2016-8-31 21:10 编辑

请教我的Arduino IDE中菜单“开发板管理器”中为什么没有要安装的那个选项?

明白了,安装的是原版的IDE,需要OCROBOT的IDE才行,谢谢。

学慧放弃 发表于 2016-8-31 21:21:18

不错,大大节省移植

Hackerpro 发表于 2016-8-31 21:42:22

这个是不是跟maple板子一样的道理啊?IDE跟maple的通用么?

迷你强 发表于 2016-9-1 10:55:24

microplc 发表于 2016-8-31 21:06 static/image/common/back.gif
请教我的Arduino IDE中菜单“开发板管理器”中为什么没有要安装的那个选项?

明白了,安装的是原版的IDE ...

我们的IDE 做了集成,官方的IDE也可以,不过需要参考github自己去折腾。。。。

迷你强 发表于 2016-9-1 10:55:48

Hackerpro 发表于 2016-8-31 21:42 static/image/common/back.gif
这个是不是跟maple板子一样的道理啊?IDE跟maple的通用么?

作者基于maple的项目后续进行了大量开发

wing 发表于 2016-9-1 11:40:30

虽然未用过ST的东西,纯粹围观一下...

迷你强 发表于 2016-9-1 13:22:03

wing 发表于 2016-9-1 11:40 static/image/common/back.gif
虽然未用过ST的东西,纯粹围观一下...

这玩意就是芯片便宜,基本和UNO差不多,性能高一大截,资源丰富,有很多串口 i2c和spi接口

zjhyhky 发表于 2016-9-1 16:30:16

为强哥点赞!请问:
1.arduino ide内置的库是否都能用?
2.有些模块需要拷进去库文件的,比如红外IRremote、HMC5883L、U8GLIB等等这些能不能用?

迷你强 发表于 2016-9-1 21:44:55

zjhyhky 发表于 2016-9-1 16:30 static/image/common/back.gif
为强哥点赞!请问:
1.arduino ide内置的库是否都能用?
2.有些模块需要拷进去库文件的,比如红外IRremot ...

试试咯,

zjhyhky 发表于 2016-9-5 13:06:08

驱动安装失败

强哥:驱动安装失败,求助!
1.下载bootloader成功,下载后蓝灯快闪;
2.安装驱动后,显示
http://image.geek-workshop.com/forum/201608/31/160631lozso9upveozmzas.png
3.用ide编译下载blink成功,pc13的蓝灯慢闪,因为blink里亮灭各一秒;
4.然后下载就失败了,提示无端口,反复安装驱动均提示不成功如下图





我的系统是win7 32位,不知道是什么原因?

keneng 发表于 2016-9-5 13:28:59

期待楼主续集

迷你强 发表于 2016-9-5 21:07:34

本帖最后由 迷你强 于 2016-9-5 21:17 编辑

zjhyhky 发表于 2016-9-5 13:06 static/image/common/back.gif
强哥:驱动安装失败,求助!
1.下载bootloader成功,下载后蓝灯快闪;
2.安装驱动后,显示


额,我WIN10下没问题。。明天去win7下试试。注意授权管理员权限,要不重刷下固件。。。
页: [1] 2 3 4 5 6
查看完整版本: 【玩STM32】如何用arduino语法来玩STM32(一)