STM32替换Arduino直通车

前言(废话较多,可直接滚动到教程)

众所周知,用Arduino进行开发简单快捷,一个项目能很快的做好,而Arduino相比STM32,贵且性价比也很低,Arduino Uno可用的针脚也少得可怜,怎么办??换做STM32吧!STM32高性能,STM32的最小系统版价格很低,对我这种穷学生来说是福利啊!于是我兴致勃勃的淘了STM32的最小系统版准备入坑STM32。

可接下来我就要下载各种各样的软件进行编程,烧录,写个最简单的Blink程序都非常麻烦,折腾我一天。

要是能像Arduino一样简单方便快捷就好了,怎么办呢?那么现在正式开始教程!

所需工具

1,STM32最小系统板,配套数据线,20元以下的就可以了。
2,Arduino(不是必须,但如果你不想买USB转TTL就可以把Arduino用作USB转TTL)或者USB转TTL模块一个。
3,跳线数根。

教程

1,配置Arduino并下载所需的文件

首先我们下载这个人开源的Arduino-STM32项目
https://github.com/rogerclarkmelbourne

下载下来并解压

Arduino快捷方式右键打开文件所在位置,将解压下来的文件移动到如下图所示目录,并将文件夹改名为STM32

接下来是重点,打开Arduino,进入开发板管理器,安装如下图所示的开发板文件


安装完后选择你的STM32开发板型号

Arduino新建一个空文件,点击左上角的验证按钮,看看能不能编译,如果可以就继续

2,为STM32下载和烧写Bootloader

接下来我们需要用USB转TTL给STM32烧录Bootloader,首先我们要下载Bootloader,进入刚刚那个人的另一个开源项目,这个地址:
https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries
选择你的STM32最小系统板的D2所对应的接口名字的文件下载(一定要选择对应的)
比如我这里找到开发板的原理图,D1是通电后的指示灯,D2是另外的LED灯,它连接了PC13针脚

那么我就选择这个文件下载

下载完成后,我们要烧录这个文件到STM32里,我们先下载所需要的软件,叫做FlyMcu。
下载地址:https://pan.baidu.com/s/1bqkVY6j
密码:vygm

然后,这里我用Arduino代替USB转TTL进行烧录,降低额外的成本。

需要注意的是,STM32的BOOT0要接上VCC高电平,BOOT1要接上GND低电平,然后按STM32版上的REST按钮使之重启进入ISP下载模式,我们才可以烧录Bootloader进去(重要)。

然后我们还可以看到,PA9是TX,PA10是RX。STM32的TX连接Arduino的RX(0接口),STM32的RX连接Aruidno的TX(1接口)。
紧接着,如果要把Arduino用作USB转TTL一定要把Arudino的RST接口一直连接Arduino的GND!Arduino连接电脑,STM32也要供电!

OK,恭喜你来到了这一步,接下来我们要用FlyMcu烧录程序,但FlyMcu无法烧录.bin文件(可以打开但无法烧录),这时我们要需要把刚刚下载下来的Bootloader从.bin文件转换成.hex文件进行烧录!
所以我们还需要一个软件,来完成这个操作,叫做BinToHex。
下载地址:https://pan.baidu.com/s/1kWkFGgB
密码:ox9g

选择我们刚刚下载的bootloader文件,然后选择文件夹导出成.hex文件,随便取个名字。

这时我们还需要很重要的一步,将生成的.hex文件用文本编辑器打开,将第一行的:020000040000FA更改成:020000040800F2(非常非常重要)


紧接着保存退出,我们打开FlyMcu,选择已经修改好的.hex文件,点击开始编程

注意,如果长时间无法连接,请按STM32版上的RST按钮或者断电重试!
如果烧录Bootloader成功,并且STM32版是通过USB连接电脑供电的话,你的电脑会提示你USB设备异常,这是没用安装正确的驱动造成的,我们打开设备管理器看一下

3,为电脑安装连接STM32的驱动

解决这个问题,接下来我们安装驱动程序。
进入我们之前下载的文件目录,点击下图所示的.bat文件安装驱动,一定要要管理员身份运行


success就是成功了,我们按STM32上的RST键,随着电脑的提示音,这时我们再看看设备管理器

我们发现多了一个串口,如果不行就重启电脑试一试。

4,用Arduino IDE为STM32烧录Blink程序

最后我们打开Aruidno IDE,选择上传程序的模式,如下图

然后写入一个Blink程序

void setup() {pinMode(PC14, OUTPUT);
}void loop() {digitalWrite(PC14, HIGH);delay(50);digitalWrite(PC14, LOW);delay(50);
}

随着红色的“Done!”和电脑一声USB提示,STM32自动重启,然后连接在STM32PC14接口上的LED开始闪烁了!
以后我们不需要额外的硬件,直接用数据线连接STM32最小系统版和电脑,并打开Arduino IDE就可以像玩Arduino一样简单方便快捷了!

教程结束,如果博文有错误或者有疑问,欢迎评论来告诉我,谢谢!

STM32替换Arduino直通车相关推荐

  1. 初试STM32基于Arduino的使用

    系列文章列表 一.初试STM32基于Arduino的使用 二.初试STM32基于Arduino的使用(第二集) Arduino的板子虽然有国内的兼容板子,但最终价格也要在40+(意大利原产的就要100 ...

  2. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?

    51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...

  3. 基于arduino的光控窗帘_分别基于STM32和Arduino的智能窗帘硬件分析与程序设计

    这是在学校参加兴趣小组做的设计,分别用了STM32板和Arduino去实现 附件里面有源码内容和具体的软硬件分析,里面也有图片内容. 设计方案 基于Arduino的硬件设计: 所需元器件:Arduin ...

  4. 硬件基础知识和典型应用-STM32 替换说明-CKS32, HK32, MM32, APM32, CH32, GD32, BLM32, AT32(推荐), N32, HC华大系列

    资料源码:https://gitee.com/yang456/learn-hardware.git 提示 所有的厂家都是使用的M0,M3,M4的核做的. 除了华大以外的其它厂商都是兼容STM32的. ...

  5. 毕业设计:基于STM32或(arduino)智能物联网居家防盗系统

    该项目实现一个物联网居家防盗系统,采用STM32F103C8T6或(arduino)为主控,通过ESP8266 WIFI模块连接云平台-机智云作为远程控制的云服务器,同时用到手机APP作为控制终端,整 ...

  6. esp32+stm32+onenet+arduino 智能家居系统

    第一次发帖,有什么不对的,麻烦指正一下. 以下是我最近完成的一个小项目,不过还有很大的改动优化空间,本篇只是带来一个大体的框架,以及我个人在这个项目所遇到的一些问题,以及我个人对这些问题的解决以及看法 ...

  7. Arduino处理STM32中的多个串口通讯问题

    简 介: 对于在Arduino下开发STM32的程序,对于STM32所具有的三个硬件USART进行测测试.结果显示可以使用这些串口完成相应的数据的输入与输出.但是涉及到以下两个问题,还没有得到解决:问 ...

  8. 安装 Arduino IDE 中STM32 软件包,ESP8266软件包

    简 介: 搜集了更多的基于Arduino生态环境的安装和使用方法. 关键词: Arduino,STM32,ESP8266 §01 安装STM32在Arduino IDE软件包 1.参考文献1 参照推文 ...

  9. 使用 Arduino IDE 对 STM32进行程序开发,安装开发板

    STM32 引脚详情 STM32 Blue Pill 板的完整引脚如下所示.正如你所看到的,G 表示接地引脚,3.3V 输出稳压 3.3V,5V 引脚可用于为电路板供电或通过微型 USB 获得+5V供 ...

最新文章

  1. 向海龙回应“被百度开除”:离开是为了专心做投资
  2. 修改zabbix后台登录账号和密码,提升为超级管理员
  3. boost::range::for_each相关的测试程序
  4. WPF 问题 PresentationCore.dll!System.Windows.Media.Composition.DUCE.Channel.SyncFlush() 分析
  5. 003---属性查找和绑定方法
  6. java 自定义运算符_Java中集合的自定义运算符
  7. python 分类变量xgboost_【转】XGBoost参数调优完全指南(附Python代码)
  8. hdu 4810 Wall Painting
  9. java hssfworkbook 乱码_java各种乱码汇总
  10. 闲置android平板电脑,让闲置的iPad / Android平板电脑成为计算机屏幕的扩展监视器!...
  11. 《莫烦Python3基础教程》学习笔记
  12. 2007中国优秀手机客户端软件和无线互联网
  13. 如何学好Linux内核?
  14. 信道、频段带宽等术语简介
  15. 大学生追女友花光学费露宿街头 4天偷396罐红牛
  16. Python基础(学习笔记)
  17. python凯撒密码实验报告_凯撒密码的python实现
  18. 第三章均数估计与假设检验例题及软件实现(SAS/R/STATA/SPSS)
  19. DDR/GDDR和HBM区别,及内存标准如何选择?
  20. 实战项目之基于flask的及时聊天系统

热门文章

  1. C语言文字简单加密程序的实现
  2. 博士访谈计算机科学研究,【计算机学院】国奖访谈 | 2019级博士研究生熊宇轩:一流的研究,从热爱科学开始...
  3. Airplay相关协议
  4. 如何使用Sulu设置在线多语言杂志
  5. Direct3D 10系统(四)
  6. 【巴法云连接小爱同学+RC522刷卡双控制舵机门锁】
  7. 计算机四级英语翻译,英语四级考试翻译技巧
  8. mac 10.13.5, texpad 1.7.40安装教程
  9. 汽车类稿件撰写:介绍一款汽车的稿子怎么写?
  10. 【学习】语音和图像上的自监督模型