使用Ardunio IDE来完成stm32串口通信

本文介绍了如何利用ArduinoIDE进行STM32的串口通信,从下载安装IDE到配置环境,再到编写代码并上传。同时,探讨了标准库与HAL库在STM32编程中的差异,标准库简化了寄存器操作,而HAL库进一步提高开发效率并增强移植性。最后,对比了ArduinoIDE和StduinoIDE,指出它们在易用性和功能上的优缺点,适合不同程度的开发者。
摘要由CSDN通过智能技术生成

1 Ardunio IDE的简介与安装

1.1 什么是Ardunio IDE

Ardunio IDE是一款专业的Ardunio开发工具,主要用于Ardunio程序的编写和开发,拥有开放源代码的电路图设计、支持ISP在线烧,同时支持Flash、Max/Msp、VVVV、PD、C、Processing等多种程序兼容的特点。

1.2 Ardunio IDE下载安装与环境配置

1.2.1 Ardunio下载

点击下载:官网下载链接
在这里插入图片描述
下载之后点击安装,安装过程很简单在此不再赘述。(具体安装教程可参考博客

1.2.2 Ardunio配置

因为我们本次为了实现STM32串口通信,所以我们需要下载支持包。
首先下载Arduino_STM32
在这里插入图片描述
下载完成后解压将文件夹放在Ardunio安装文件夹 \Arduino\hardware
在这里插入图片描述
再打开Ardunio按照下列步骤打开
在这里插入图片描述
之后输入:arm 搜索安装即可
在这里插入图片描述
接下来需要安装串口下载工具
这里提供打包好的工具文件
百度网盘:提取文件
提取码:n678
链接板子的串口,双击打开里面的文件
在这里插入图片描述
在这里插入图片描述
一直点击Next即可
这里需要选中你连接串口的端口
在这里插入图片描述
再次一直点击Next
直到
在这里插入图片描述
选择如图文件夹下的文件即可,根据你的板子pe连接LED的不同灵活选择
在这里插入图片描述
打开后再次Next
直到
在这里插入图片描述
出现上图就完成了关闭即可

2 在Ardunio中实现STM32的串口通信

2.1 编写代码并且验证上传

打开Ardunio
并且在工具中选择如图所示配置,其中端口按照你连接的选择
在这里插入图片描述
输入以下代码:

String  inputS = "";
String Stopflag = "stop\n";
int flag = 1;//设立标志位

void setup() 
{
  pinMode(PE5, OUTPUT);
  Serial.begin(115200);//设置波特率为115200
}

void loop() {
  digitalWrite(PE5, HIGH);    //灯亮                    
  delay(1000);                                      
  digitalWrite(PE5, LOW);     //灯灭                     
  delay(1000);                                     
  while (Serial.available())//Serial.available()这个函数用于输入信号进入缓冲
  { 
    inputS= Serial.readString(); //直接读取字符串
    delay(2);//这里延时是为了字符串完整读入
  }
  if (Stopflag.equals(inputS)) //停止标志位于输入信号一致,便停止发送数据
  {
    Serial.println("ok,stop");
    inputS="";
    while(1){}
  }
  else
  {
    inputS=""; //inputS置空
    Serial.println("Hello Word!");
    delay(100);
  }
}

依次点击验证和上传
在这里插入图片描述

2.2 结果展示

这时候可以打开我们工具中的串口监视器调整好波特率来观测我们的结果
在这里插入图片描述
在这里插入图片描述

3 基于标准库函数与基于HAL库函数的stm32编程方式的差异

3.1 标准库

STM32有非常多的寄存器,而导致了开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的。在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。也是目前最多人使用的方式,也是学习STM32接触最多的一种开发方式,我也就不多阐述了。

3.2 HAL库

HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效,如果说标准库把实现功能需要配置的寄存器集成了,那么HAL库的一些函数甚至可以做到某些特定功能的集成。也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,例如在F4上开发的程序移植到F3上是不能通用的,而使用HAL库,只要使用的是相通的外设,程序基本可以完全复制粘贴,注意是相通外设,意思也就是不能无中生有,例如F7比F3要多几个定时器,不能明明没有这个定时器却非要配置,但其实这种情况不多,绝大多数都可以直接复制粘贴。是而且使用ST公司研发的STMcube软件,可以通过图形化的配置功能,直接生成整个使用HAL库的工程文件,可以说是方便至极,但是方便的同时也造成了它执行效率的低下,在各种论坛帖子真的是被吐槽的数不胜数。
(参考博客

4 Ardunio IDE与Stduino IDE的比较

4.1 简介

Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,已率先支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能
Ardunio IDE在文章开头已经介绍

4.2 对比

两者的对比如下:(参考博客

Ardunio IDE
简单易用 ,可以完全用c语言进行软件代码调试 ,也有很多库可以进行下载调用。
没有断点调试 ,不能很好的理解单片机如何进行地址赋值和工作 ,可以作为入门级学习。
体验就是简单易上手,但与Keil等比较就有一点简陋,比较适合入门学习。深入学习还得是keil,IAR等。
Stduino IDE
既可以完全用c语言编写调试程序, 也可以进行断点调试 ,和keil一样可以添加文件和工程 ,融合了各家所长, 也有相关关键字提示。
但目前都是基于已开发的语言进行的学习开发,如何才可以将单片机编程变得更加易用和实用,解决痛点才是关键 。

4.3 结论

总结: 两者各有各的好,对于初学者来说比keil,IAR更好上手,但是却没有他们更加深入了解。

5 本文总结

本次主要使用Ardunio IDE来完成stm32串口通信,与之前文章不同的是本次使用串口烧录并且在Ardunio IDE中非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值