极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 183209|回复: 75

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

  [复制链接]
发表于 2016-8-31 16:17:54 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 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,这样就进入了串口编成模式(接线图如下表)
[td]
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口号,所以不用选择,直接下载程序好了
程序

  1. void setup() {
  2.   pinMode(PC13, OUTPUT);
  3. }
  4. void loop() {
  5.   digitalWrite(PC13, HIGH);   
  6.   delay(1000);              
  7.   digitalWrite(PC13, LOW);   
  8.   delay(1000);
  9. }
复制代码


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

硬件效果
我们再来测试下串口通信看看是否好用(注意,刚才通讯过后,设备会有端口号了,注意在板卡选项卡里选择上)

  1. void setup() {
  2.   Serial.begin(9600);
  3. }
  4. void loop() {
  5.   Serial.println("hello OCROBOT~!");
  6.   delay(1000);
  7. }
复制代码


测试效果


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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2017-5-29 16:21:40 | 显示全部楼层
老是失败,不知道什么原因

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 4 反对 0

使用道具 举报

发表于 2016-9-9 00:32:30 | 显示全部楼层
本帖最后由 zjhyhky 于 2016-9-9 00:33 编辑
弘毅 发表于 2016-9-8 19:55
难道是精简版系统引起的?


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

前面百度来的方法无效。

还有种可能,我原来系统装过maple的驱动,不知道会否有影响。
回复 支持 0 反对 2

使用道具 举报

发表于 2017-5-10 11:43:58 | 显示全部楼层
Win7 下Maple驱动问题解决方案
https://my.oschina.net/quanpower/blog/378922
谁英文好去翻下墙
回复 支持 1 反对 0

使用道具 举报

发表于 2016-8-31 20:01:16 | 显示全部楼层
不错,学习一下
回复 支持 反对

使用道具 举报

发表于 2016-8-31 20:09:24 | 显示全部楼层
号玩具~赞一个!
回复 支持 反对

使用道具 举报

发表于 2016-8-31 21:06:30 | 显示全部楼层
本帖最后由 microplc 于 2016-8-31 21:10 编辑

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

明白了,安装的是原版的IDE,需要OCROBOT的IDE才行,谢谢。
回复 支持 反对

使用道具 举报

发表于 2016-8-31 21:21:18 | 显示全部楼层
不错,大大节省移植
回复 支持 反对

使用道具 举报

发表于 2016-8-31 21:42:22 | 显示全部楼层
这个是不是跟maple板子一样的道理啊?IDE跟maple的通用么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-1 10:55:24 | 显示全部楼层
microplc 发表于 2016-8-31 21:06
请教我的Arduino IDE中菜单“开发板管理器”中为什么没有要安装的那个选项?

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

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

使用道具 举报

 楼主| 发表于 2016-9-1 10:55:48 | 显示全部楼层
Hackerpro 发表于 2016-8-31 21:42
这个是不是跟maple板子一样的道理啊?IDE跟maple的通用么?

作者基于maple的项目后续进行了大量开发
回复 支持 反对

使用道具 举报

发表于 2016-9-1 11:40:30 | 显示全部楼层
虽然未用过ST的东西,纯粹围观一下...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-1 13:22:03 | 显示全部楼层
wing 发表于 2016-9-1 11:40
虽然未用过ST的东西,纯粹围观一下...

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

使用道具 举报

发表于 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
为强哥点赞!请问:
1.arduino ide内置的库是否都能用?
2.有些模块需要拷进去库文件的,比如红外IRremot ...

试试咯,
回复 支持 反对

使用道具 举报

发表于 2016-9-5 13:06:08 | 显示全部楼层

驱动安装失败

强哥:驱动安装失败,求助!
1.下载bootloader成功,下载后蓝灯快闪;
2.安装驱动后,显示

3.用ide编译下载blink成功,pc13的蓝灯慢闪,因为blink里亮灭各一秒;
4.然后下载就失败了,提示无端口,反复安装驱动均提示不成功如下图





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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2016-9-5 13:28:59 | 显示全部楼层
期待楼主续集
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-5 21:07:34 | 显示全部楼层
本帖最后由 迷你强 于 2016-9-5 21:17 编辑
zjhyhky 发表于 2016-9-5 13:06
强哥:驱动安装失败,求助!
1.下载bootloader成功,下载后蓝灯快闪;
2.安装驱动后,显示


额,我WIN10下没问题。。明天去win7下试试。注意授权管理员权限,要不重刷下固件。。。
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 23:20 , Processed in 0.047403 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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