Arduino借助STM32Duino开发STM32教程-(2023年8月)

这篇具有很好参考价值的文章主要介绍了Arduino借助STM32Duino开发STM32教程-(2023年8月)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前,网络上大多数的讲述arduino开发stm32的教程都存在一定的问题(缺少一些关键步骤),以至于会产生误导,本人是看着这些教程一路走来的,通过我的相关搜索,而整理出的一套较为完善的教程。

开发环境搭建

安装IDE

前往官网下载Arduino IDE并安装,这里推荐Arduino IDE 2,有丰富的代码补全功能和更好看的UI以及DEBUG支持(本文可用)
stm32duino,STM32Duino,stm32,嵌入式硬件,单片机

安装开发板

安装好IDE2之后,就需要添加开发板,这里我们使用最广泛的STM32Duino,目前已经基本适配所有的STM32芯片

打开Arduino的开发板管理器:文件 -> 首选项 -> 其他开发板管理地址,增加如下并保存:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

接着在开发板处安装STM32芯片包的支持,一般选择最新版,注意看清楚是STM32,STM8:
stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
由于服务器在国外故此处安装时间较为漫长,有能力的小伙伴可以在首选项的网络选项卡中配置相关信息来提高速度
等待安装结束之后,至此IDE部分的配置已经基本完成,但还不能够正常工作,需要配置烧录工具

配置烧录工具

在开发STM32的时候通常采用SWD而非串口烧录,这里同样如此,需要使用烧录器ST-Link,官方的或是淘宝款的均可。
stm32duino,STM32Duino,stm32,嵌入式硬件,单片机

注意:这里指的是ST-Link,DAP-LINK等均无法使用,但并不是说绝对不能使用,但体验感较差,最后将会讲述使用DAP-LINK的方法,此部分均使用ST-Link,我也推荐使用ST-Link

安装驱动程序

驱动程序采用ST官方的ST-Link驱动程序就可以,若在官网下载,对应STSW-LINK009,其他地方的也可以,看准系统版本对应即可
安装好驱动之后插入STlink可以在设备管理器中看到设备正常工作:
stm32duino,STM32Duino,stm32,嵌入式硬件,单片机

配置烧录器

这部分非常重要但很多的教程都忽略掉了,从而导致不能正常写入芯片程序
去ST官网下载STM32CubeProgrammer 注意看清楚对应的系统,下载并安装
打开之后可以看到连接到你的ST-Link,若是连接到开发板还可以看到芯片信息

stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
这个程序我们主要是调用其CLI,因此安装上就可以了,平时开发的时候也很少直接打开

测试环境

至此,开发环境的搭建已经完成,通常情况下,我们可以写一个点灯程序来测试我们的环境是否正常(此处我的板子是STM32F103ZET6)

  1. Arduino中创建空白工程
  2. 写入以下程序,开发板的LED灯写对应引脚,(我的开发板连接LED的是PE5)
#define LED_PORT PE5  //LED引脚
void setup() {
  pinMode(LED_PORT, OUTPUT);
}

void loop() {
  digitalWrite(LED_PORT, HIGH);
  delay(200);
  digitalWrite(LED_PORT, LOW);
  delay(200);
}
  1. 在 工具 -> 开发板 选择你的开发板芯片型号
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
  2. 在 工具 -> Board Part Number处选择具体型号
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
  3. 在 工具 -> Upload Method处选择STM32CubeProgrammer(SWD)
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
  4. 将开发板和ST-LINK通过SW的线序相连接:SWDIO、SWCLK、VCC、GND依次对应相接
  5. 编译、烧写均可以正常通过,速度非常快,可以看到LED闪烁
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机

常见问题

  1. arduino下能不能用HAL编程
    STM32duino就是基于HAL写的,基本支持HAL的库函数,能够正常编译
    例如通过拉低电平来开启PE5的LED灯
digitalWrite(PE5,LOW);

可以直接在Arduino中使用HAL写为

HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);

完全等效

  1. arduino下如何配置时钟树?
    配置时钟树我们需要使用ST的HAL的API,在主程序中重载void SystemClock_Config(void)函数,并在void setup()中调用SystemClock_Config()
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
    对于这段代码可以自己编写但推荐的是通过STM32CubeMX图形化生成,并在main.c中复制得到
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机

  2. 硬件串口无输出
    当测试到Arduino中按照正确的方式读写硬件串口时但没有任何消息输出,这种情况下大多是没有对应好引脚而造成的,例如我这块开发板就是这样的
    以下这段程序正常编写但没有任何输出

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("hello");
  delay(200);
}

这里通过更改硬件串口对应的引脚解决
参照开发板手册我们可以看到USART在PA9和PA10上stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
代码更改为

HardwareSerial Serial1(PA10,PA9); //顺序是RX,TX
void setup() {
  Serial1.begin(115200);
}
void loop() {
  Serial1.println("hello");
  delay(200);
}

即可解决文章来源地址https://www.toymoban.com/news/detail-720113.html

  1. 使用DAP-Link下载程序
    由于STM32Duino没有DAP-Link下载程序支持,需要先生成二进制文件然后通过DAP-Link的烧写程序加载烧录
    stm32duino,STM32Duino,stm32,嵌入式硬件,单片机
    接着通过DAP-Link的烧写程序加载烧录

到了这里,关于Arduino借助STM32Duino开发STM32教程-(2023年8月)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录:clion上开发stm32 环境配置(保姆级详细教程)----->2023_7_1

    clion _______百度网盘下载链接-------提取码:166b 注 :此链接clion是破解版的,下载无需安装,解压完了先运行主目录里的绿化脚本,然后再打开bin文件夹里的clion。 OpenOCD ______直达链接 或 首页地址 MingW ______直达链接 或 首页地址 arm-none-eabi-gcc ______直达链接 或 首页地址 STM32CubeMX ____

    2024年02月07日
    浏览(48)
  • 嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

      引言: 嵌入式开发作为计算机科学领域的重要分支,为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库,为学习者提供了更高效、更简单的开发方式。本文将结

    2024年02月12日
    浏览(47)
  • Vscode platformio Arduino开发STM32,点灯+串口调试

    1.工具 USB-TTL(非常便宜,几块钱) STM32F103C8T6(几块钱) 2.引脚连线 USB-TTL STM32 TX PA10 RX PA9 VCC 3.3V GND GND 注意事项: 跳线帽位置:BOOT0接高电平(1),BOOT1接低电平(0) 每次上传程序前需要按一下复位键(之后,跳线帽的位置不需要改变,程序即可正常运行),否则会可能出现下面这种情

    2024年02月11日
    浏览(49)
  • 优雅的使用CLion开发STM32 2023最新版本~

    一共需要的资料如下 ✈代表需要魔法 没有标注可直接访问 Clion 下载链接 cubemx 下载链接 mingw 下载连接 ✈ 安装完直接解压到文件夹 并且把bin文件的路径存入path环境变量 gcc 下载链接✈ 安装完直接解压到文件夹 并且把bin文件的路径存入path环境变量 openocd 下载链接 安装完直接

    2024年02月16日
    浏览(48)
  • STM32 Linux开发板丨STM32MP157开发板资料手册+实战教程+视频教程

    iTOP-STM32MP157开发板是基于意法半导体STARM双Cortex-A7核加单Cortex-M4核的一款多核异构处理器。Cortex-A7内核提供对开源操作系统Linux的支持,借助Linux系统庞大而丰富的软件组件处理复杂应用。M4内核上运行对于实时性要求严格的应用。 开发板既有A7核,又有M4核,从学习者角度来看

    2024年02月12日
    浏览(38)
  • STM32之HAL库微妙延迟(借助Systick)

    2024年02月11日
    浏览(42)
  • 2023最新版本~KEIL5使用C++开发STM32

    ▬▬▬▬▬▶用C++开发Keil◀▬▬▬▬▬ 因为是第一次写这个配置教程 我会尽量详细些 打开一个Keil工程 移除本地core 添加在线core 第一次编译代码 不会有报错 修改main.c文件类型为C++ 点击魔术棒 把ARM编译器修改为V6 第二次编译会报错语法不兼容 我把汇编部分的这些代码做了

    2024年02月12日
    浏览(50)
  • vscode stm32cubemx 优雅开发stm32,最简单步骤教程

    下载STM32cubeMX,这个大家可以自己在stm的官网下载到 下载VSCode 下载arm-none-eabi-gcc 下载MinGW-w64,为了实现里面的makefile 等功能 下载OpenOCD这里用来调试stm32,支持jlink stlink daplink 上述安装步骤1、安装步骤2在这里比较简单,就不赘述了  此处我们下载zip包,方便安装。 以我为例

    2024年02月12日
    浏览(55)
  • 【STM32+HAL+Proteus】系列学习教程2---STM32开发模式选择

    1、熟悉STM32开发常用的三种模式         STM32常用的开发模式有三种:基于寄存器开发、基于标准外设库开发、基于STM32CubeMX+HAL/LL开发。通常我们学习STM32的时候,首先都得先选择一种开发模式,不同的开发模式会导致编程的架构完全不一样。 1、 基于寄存器开发模式(ST

    2024年04月28日
    浏览(36)
  • ARDUINO STM32 SSD1306

    STM32F103XX系列SPI接口位置 在ARUDINO 下,(不需要设置引脚功能,不需要开启时钟设置,ARDUINO已经帮我们处理了) stm32f103c6t6 flash不足,不足以运行U8G2,产生错误(STM32F103C8T6 FLASH ram足够,直接运行示列) 改用U8X8,后将字体改为u8x8_font_artosserif8_n ,可以简单程序 使用U8X8可以显示

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包