Ardunio和HAL库函数编程

一、Arduino IDE软件下载安装

1.官网下载

Arduino IDE软件下载安装
官网下载需要付费
这里分享一个免费的
免费
提取码:y8q3

2.安装

在这里插入图片描述
完成安装
在这里插入图片描述

3.把Arduino_STM32文件夹拷贝到Arduino\hardware下
4.安装编译文件

在这里插入图片描述

二、安装串口烧录软件

1.安装

在这里插入图片描述
完成安装
在这里插入图片描述

2.连接串口

在这里插入图片描述
在这里插入图片描述
通过USB转TTL连接电脑。

3.打开GUI

在这里插入图片描述
点next
在这里插入图片描述
在这里插入图片描述
完成安装
在这里插入图片描述

三、Ardunio 完成STM32的串口通信

1.打开Arduino

点开工具
在这里插入图片描述

2.输入符合要求的代码

代码:

int flag=1;               //发送标志位
char Stop[]="stop\n";     //停止命令
char Start[]="begin\n";   //开始命令

void setup() 
{
    Serial.begin(115200); //串口初始化  
}

void loop() 
{
    int i=0,flag_s=0,flag_s1=0;
    char inByte[50];
    while (Serial.available()> 0)     //当发送缓冲区有数据时
    {
        inByte[i] = Serial.read();    //从串口的缓冲区取出并读取一个Byte的数据
        delay(10);                   
        
        if(Stop[i]!=inByte[i])       //判断发送数据是否与停止命令相等
             flag_s=0;
        else flag_s=1;
        
        if(Start[i]!=inByte[i])      //判断发送数据是否与开始命令相等
             flag_s1=0; 
        else flag_s1=1;
        
        i++;
    }
     
    if(flag_s==1)                       //如果与停止命令相等
      {
           flag=0;                      //发送标志位置为0
           Serial.println("已停止发送");
           flag_s=0;                   //初始化判断,防止没有发送数据时一直执行
      }

     if(flag_s1==1)                    //如果与开始命令相等
      { 
           flag=1;                     //发送标志位置为1
           Serial.println("开始发送");
           flag_s1=0;                  //初始化判断,防止没有发送数据时一直执行
      }
    
      if (flag==1)                      //判断发送标志位是否为1
    {
        Serial.println("Hello World!");  
        delay(1000);
    }
    
}



编译成功
在这里插入图片描述
上传
在这里插入图片描述

3.结果展示

在这里插入图片描述

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

1.标准库函数

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。在使用中我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。

2.HAL库函数

HAL库是ST公司提供的新标准库,包含在ST为新的标准库注册了一个新商标:STMCube™当中。可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。

3.差异

(1)HAL库的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效,如果说标准库把实现功能需要配置的寄存器集成了,那么HAL库的一些函数甚至可以做到某些特定功能的集成。也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。
(2)HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,例如在F4上开发的程序移植到F3上是不能通用的,而使用HAL库,只要使用的是相通的外设,程序基本可以完全复制粘贴,注意是相通外设,意思也就是不能无中生有,例如F7比F3要多几个定时器,不能明明没有这个定时器却非要配置,但其实这种情况不多,绝大多数都可以直接复制粘贴。

五、试玩 Stduino IDE的体会

1.Stduino IDE介绍

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

2.Arduino IDE介绍

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

3.keil缺点

在使用keil编写stm32程序的时候,我们需要读他的开发手册,如果想对寄存器进行操作,还得记住每个寄存器的位置和作用,用库函数进行操作也得知道每个函数的意义,需要花费比较多的学习时间成本。

4.Ardunio优点

Ardunio在操作方面比keil要简单得多,选好自己使用的设备后就可以开始编程了,编程方面只要会C语言就可以写出程序,还支持一键下载程序到单片机,同时配有串口监视器,可以看到单边机的输出。

5.stduino优点

stduino IDE本身就是基于Arduino IDE进行开发的,所以它具备了Arduino IDE的所有优点,简单易上手,同时还多了一些Arduino IDE没有的功能,比如GDB调试等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值