原址:https://blog.csdn.net/alanzjl/article/details/43232601

借鉴一下,以备后用

Arduino IDE是一种很方便的开发环境,通过把底层代码函数化,做到让使用者开发软件不需要太多了解底层控制,缩短了代码,大大提升了开发效率。而且Arduino基于C/C++,其语言、开发环境都很容易理解,是初学者的一个不错选择。但是,Arduino出品的开发板芯片比较古老,计算能力比较低下,较为复杂的运算实现困难。。因此把Arduino环境用在ST意法半导体公司的STM32系列上会有不错的效果。现在网络上已经有Arduino for STM32的文章了,不过都是针对自家做的板子所写,不支持其他板子,这篇文章讲的方法适用性较广,我个人使用的是国产神舟I号开发板,板载STM32F103RB,目前已知此方法适用于STM32F103C8x、STM32F103CBx、STM32F103Rxx 芯片。

下面进入正文。

详细页面:http://alanzjl.sinaapp.com/2015/02/arduino_in_stm32/

一、软件准备。

1、Arduino最新版,现在好像是1.5.8 BETA,我用的是1.6.0,忘了从哪里下到的了现在貌似找不到了,不过1.5.x也可以。

下载地址:http://www.arduino.cc/en/Main/Software

我的板子:

2、STM32 master文件,下载解压之后,把文件夹名改成Arduino_STM32,拷贝到My Documents/Arduino/hardware下,如果hardware文件夹不存在的话就新建一个。

3、安装STM32驱动,不安装的话com口识别不出来,win7/8应该都可以在线自动安装,如果还是不行的话就百度搜一下驱动程序吧。

4、打开Arduino IDE,选择合适的板子,我选的是下图这个。

选择好COM口,用的是哪个COM口在控制面板-设备管理器里可以看到(如果看不到就说明驱动程序没装好)。另:连接STM32和电脑的时候一定注意STM32上用的是哪个接口!!比如我的这块神舟I,有两个miniUSB口,其中有一个是USB转串口的,那么需要连的就是这个,别连错了!!连错了COM口也不会出现。(如果开发板不是自带USB转串口芯片的,就要自备这块芯片,从串口连接)

二、软件准备完了,下面准备硬件。

1、STM32启动方式:SystemBoot。这个非常重要!我就是在这里卡了好久。

我的这块板子:

不同的开发板BOOT0、BOOT1设置的不一样,我的是用跳帽短接BOOT0,BOOT1不动之后复位进入SystemBoot模式。(stm32有多钟启动模式,UserBoot、SystemBoot、SRAM_Boot模式,其中如果使用串口下载要擦写FLASH的话一定要用SystemBoot模式,UserBoot模式是写好程序之后执行这个程序的时候用的,在我的板子上是BOOT0不短接,BOOT1随意,也就是不用跳线帽的时候的默认模式)

如果模式错了,可能会出现下面这个情况(我当初就是在这里纠结了好久):

2、安好跳线帽之后按reset复位,写好的程序就可以往里面烧写了。

三、来点具体案例吧。

1、LED闪烁。你的开发板上应该有板载LED吧,什么?你的是核心板?那就跳过这一个到下一个或者外接一个LED吧。

led闪烁首先要搞清楚led接在哪个管脚上,我的有三个,分别接在接在PA2、PA3还有PB2上,看PA1比较顺眼,那就PB1吧。

注意,Arduino自家板子的I/O口是有编号的,比如在Arduino Ide里面打开一个实例程序,Blink,可以发现编号为13的管脚接着一个led。。。但是在stm32上面编号是怎么对应的就不一定了。。于是,我们就不能用编号了,用管脚标号吧,买板子的时候商家会给,硬件原理图里面,比如下面这个,可以看出PA2、PA3都是led,那么我们只要把原来实例代码的编号改成这个PA2、PA3就行了。

[cpp] view plain copy
  1. int led1=PA2;
  2. void setup() {
  3. pinMode(led1,OUTPUT);
  4. }
  5. void loop() {
  6. digitalWrite(led1,HIGH);
  7. delay(1000);
  8. digitalWrite(led1,LOW);
  9. delay(1000);
  10. }

下载到板子上,拔掉BOOT0处的跳线帽,reset,就可以看到led1在blink了。注意:每次下载程序都要进入SystemBoot模式下载!

2、串口的应用,就是用串口从板子往电脑发一个Hello World。实例里面可以看出来,Serial.print(“”)函数是打印引号里面的内容,而Serial.println(“”)是打印引号里面内容之后多打一个换行符。这里程序设置波特率为9600,串口调试器端要设置的一样,注意右下角。

[cpp] view plain copy
  1. void setup() {
  2. Serial.begin(9600);// opens serial port, sets data rate to 9600 bps
  3. Serial.println("Hello World!");
  4. Serial.print("Hello World!");
  5. Serial.print("Hello World!\n");
  6. Serial.print("Hello World!");
  7. }
  8. void loop() {
  9. }

要是还有什么不明白,可以到这里https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

在github上面的一篇文章,描述很详细,不过网速实在慢,平常国内下载能到2m/s,校内20-30m/s,但github也就20k/s。。。。而且用百度云离线下载反而更慢。。。

OK,就写这些吧。

在stm32上使用Arduino IDE(神舟I号为例)相关推荐

  1. 【历史上的今天】9 月 25 日:谷歌进军电商行业;摩托罗拉诞生;神舟七号发射成功

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 9 月 25 日,伟大的文学家鲁迅诞生在 140 年前的今天,他是 20 世纪的文化巨人,以文字为武 ...

  2. ESP8266-Arduino编程实例-SPIFFS及数据上传(Arduino IDE和PlatformIO IDE)

    SPIFFS及数据上传(Arduino IDE和PlatformIO IDE) 1.SPIFFS介绍 ESP8266 包含一个串行外设接口闪存文件系统 (SPIFFS). SPIFFS 是为带有闪存芯 ...

  3. stm32 神舟3号 开发板 usb DFU 实现

    1.官网下载usb源码包, 2.神舟III号的MCU位f103ze 系列.打开压缩包,直接找到 Device_Firmware_Upgrade 文件包 MDK打开工程. 3.选择 stm3210E_E ...

  4. 【连载】【STM32神舟III号实验例程】流水灯实验(实验一)

    源代码流水灯实验例程程序(神舟III号).rar

  5. 神舟六号的投入产出比:1比12

    神舟六号飞船已发射成功,国家大概投入了多少资金,按照成本与收入的配比原则,能为国家带来多少经济效益? 10月11日,北京大学地球与空间科学学院焦维新教授表示,载人航天肯定是花钱的事业,效益可分为两个方 ...

  6. 2020神舟几号发射_中国宇宙飞船发射到神州几号了

    随着如今科学技术的不断发展,中国真的是在国际上都走到了前沿,在短短的17年时间内就已经发射了11艘宇宙飞船,在宇宙的探索中又迈上了更高的一步.那么截止到目前中国宇宙飞船发射到神州几号了呢?据说是在30 ...

  7. 互联网晚报 | 11月8日 星期一 | 美团外卖公开“订单分配”算法规则;英雄联盟首部动画剧集上线;神舟十三号航天员首次出舱...

    今日看点 ✦ 神舟十三号航天员乘组圆满完成首次出舱活动全部既定任务 ✦ 微信视频号公布MCN招募计划:最高10万元奖励 ✦ 美团外卖公开"订单分配"算法规则,推出"主动改 ...

  8. 神舟IV号开发板-107.OTG功能-对U盘的访问(例程bug1)

    107.OTG功能-对U盘的访问(显示U盘中图片)(STM32神舟IV号-库函数版) 例程源码,编译出错 源代码编译出错 我真的栓Q 解决办法~~安排 1.这个文件夹是中文的 把它改成英文" ...

  9. “神舟”五号飞船数字集纳

    1."神舟"五号直接消耗不到10亿元人民币,前四次消耗各约1亿美元. 2."神舟"五号飞船总长9.2米,总重7790千克. 3."神舟"五号 ...

最新文章

  1. JMeter 报告监听器导入.jtl结果文件报错解决方案
  2. mysql还原数据报错:
  3. vue中集合取第一个_快速学习Vue框架(知识点集合)
  4. 小小数据统计(柱状图、折线图、扇形图)
  5. mikadonic-RHCE——NFS服务配置图解
  6. python—pickle模块的dump与load函数
  7. 学会 配置文件+反射,走遍全球都不怕.
  8. 【正点原子Linux连载】第六十九章 Linux 网络驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  9. 在 Windows 下关闭135/139/445端口的图文方法
  10. 语义分割之《CCNet: Criss-Cross Attention for Semantic Segmentation》论文阅读笔记
  11. DICOM标准之一_介绍和概述
  12. leetcode | 整数反转
  13. GIS空间分析之公路选线
  14. MATLAB读取EXCEL表格文件,并进行可视化
  15. 二维码图片在微信无法识别(iOS)
  16. 模糊图片(动漫)转高清 (aardio GUI),优质图片处理软件
  17. matlab 2015 积分,浅谈MATLAB在数值积分中的应用
  18. 毕业论文-----有关目录的全部问题
  19. 抽象类(abstract class)和接口(interface)
  20. [2012山东ACM省赛] Fruit Ninja II (三重积分,椭球体积)

热门文章

  1. python代码解读软件_5种带你轻松分析Python代码的软件库
  2. 取消对 null 指针“l”的引用。_C语言编程笔记丨C 语言指针 5 分钟教程
  3. 《c语言从入门到精通》看书笔记——第13章 预处理
  4. linux只允许从ttyS0设备登录,linux自动以root登录,并自动启动用户程序的设置方...
  5. c语言课程设计 性别,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  6. ubuntu20.1 查看apt仓库_上海食品冷藏仓库出租查看
  7. 四针角oled屏连接arduino_使用Arduino开发板连接OLED显示屏制作一款智能手表
  8. Powerful array CodeForces - 86D (莫队算法)
  9. python系统学习:函数积累(持续更新)
  10. 接口测试学习——jmeter分布式压测