搜索
bottom↓
回复: 9

STM32如何使用arduino_ide进行开发

[复制链接]

出0入234汤圆

发表于 2021-10-27 18:03:40 | 显示全部楼层 |阅读模式
本帖最后由 正点原子 于 2022-1-7 17:42 编辑

以下文章来源于:公众号:开源电子网,读取更多技术文章,请扫码关注

讨论发帖图.png

STM32如何使用arduino_ide进行开发


       很多朋友问到,我不懂硬件,不懂寄存器操作,C语言也不是很会用,能写STM32单片机代码吗?其实还是有小路子的,用Arduino_IDE上位机软件,借助Arduino的库,使用C++/C语言编写STM32单片机代码。

       这里以正点原子MINI板为例子,使用Arduino_IDE完成点灯和串口打印。

       1.jpg

       废话不多说,开干!!

     (本文配套工程文件,在底部下方供大家学习下载。)



     第一步 先把Arduino_IDE软件安装好

       Arduino_IDE,网址:https://www.arduino.cc/en/software


       软件版本的话,最好还是1.8.x,由于arduino官网在国外,所以下载速度慢,这里大家可以查看一下我们提供的资料链接,里面有一个Arduino-1.8.13-windows.zip压缩包,解压即可使用。

         2.png



      第二步 从GitHub下载Arduino_STM32

        rogerclarkmelbourne博主提供了这个库。

        网址如下:

          https://github.com/rogerclarkmelbourne/Arduino_STM32

          3.png

       这个也是属于外网,所以这个压缩包Arduino_STM32.zip也提供给大家。大家解压后,把Arduino_STM32文件夹拷贝或者移动到arduino-1.8.13/hardware即可。如下图所示。
          4.png



      第三步 打开Arduino_IDE,下载编译工具链

        按照以下顺序执行即可。

      (1)进入到开发管理器

       5.png
      (2)下载安装Arduino SAM Boards(32-bits ARM Cortex-M3)by Arduino开发板。

        (这个过程需要一定时间,请耐心等待安装完成)

            6.png

        上图已经烧录好了,所以不需要重新安装。

        注意:如果出现下载失败,基本上都是网络问题,最好选择白天下载,晚上外网网速比较慢。



     第四步 硬件操作及烧录

      1.硬件操作:把MINI板子上的BOOT0引脚连接到VCC,我们使用串口下载方式,然后按一下复位引脚进入等待烧录状态。

          7.png


       2.选择可用的Demo,操作如下:


      (1)选中板子型号,GenericSTM32F103R series

    8.png


      (2)选中板子容量,STM32F103RC(48kRAM,256kFlash)

   9.png


      (3)选取参考demo,拿手好戏—点灯demo。

      10.png


      (4)根据原理图,修改一下代码。LED0用到PA8,LED1用到PD2。


          11.png

          12.png

         13.png


       (5)选择下载方式串口并选择对应的COM口。

         14.png


       (6)下载验证。



       (注意:烧写成功后,会发现LED0和LED1同时闪烁,假如不把BOOT0引脚重新连接到GND,这个现象只会出现一次,所以要把BOOT0引脚连接到GND,这时候你如何进行复位,上电都是正常效果)

        下载完成如下图:

            15.png


            16.png


       可以看到我们已经成功实现了点灯和串口打印。从代码实现上看,十分简单,对于新手比较友好,而且有很多库给我们轻松调用,所以DIY也可以尝试一下这种开发方式。

       不过,这个也有很大的缺点,不能调试以及不能goto definition,对于开发来说实属不便。

       KEIL,Arduino_IDE,VScode,STM32CubeMX,STM32CubeIDE都是可以进行STM32开发,这些只是工具,各有各的好处,当然对于我们来说,选择一个适合的开发方式肯定有着事半功倍的效果,但最重要的还是掌握STM32的开发。

出215入118汤圆

发表于 2021-10-27 18:14:55 来自手机 | 显示全部楼层
Platformio更方便快捷。

出0入134汤圆

发表于 2021-10-27 19:13:13 | 显示全部楼层
snowy 发表于 2021-10-27 18:14
Platformio更方便快捷。

同VSC+PIO

出0入0汤圆

发表于 2021-10-27 20:56:48 来自手机 | 显示全部楼层
最近正好在整这个,rogerclarkmelbourne的库可以,但st有官方的库,比较糟糕的是必须用那个json来下载支持,由于墙的原因,那个文件老是下载失败。建议正点原子把装好st库的arduino打个包,方便后面的人。我是想自己打包,但没搞定,水平太烂,不好意思。

出0入0汤圆

发表于 2021-10-27 21:34:39 | 显示全部楼层

是基于cubemx框架还是 Arduino框架?

出20入0汤圆

发表于 2021-10-27 22:01:38 | 显示全部楼层
搞不懂PIO,你们都能在PIO下载东西吗?反正我不行

出0入224汤圆

发表于 2021-10-27 22:35:18 | 显示全部楼层
最近用ESP32做了个项目,这个arduino官方的IDE是真难用,最好用是vs code + Platformio , 但是Platformio也有点不方便,比如要用到flash加密,目前还没什么好办法,另外Platformio也还不支持esp32 arduino 2.0版本。

出0入309汤圆

发表于 2021-10-28 13:18:52 | 显示全部楼层
Roger Clark 已经把 www.stm32duino.com 转交给了 ST 官方处理,所以这个repo基本就算是被废弃了。这个库总体还是挺不错的,有些小bug但不多。
与常见的STM32开发不太一样的一点是这个库是用Maple做底层操作的。所以如果要修改外设什么的,比如自己操配置DMA,得需要摸索Maple的使用方式。

这个库本身确实不支持调试,但是可以用Keil来载入ELF文件调试。因为没有用到Keil的编译功能,不需要买Keil,试用版就行。这里有我前给自己参考用的PDF。 debugWithKeil.pdf (464.82 KB)

出0入134汤圆

发表于 2021-10-28 13:31:36 | 显示全部楼层
solojimes 发表于 2021-10-27 21:34
是基于cubemx框架还是 Arduino框架?

支持多达7个框架
VSC-STM32.png

出0入0汤圆

发表于 2021-10-28 16:37:08 | 显示全部楼层
elecfun 发表于 2021-10-28 13:31
支持多达7个框架

这些我知道,就是问问前辈用的哪个,可以一起交流交流
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 20:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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