Arduino和HAL库函数编程

一 、安装 Arduino IDE 和相关软件支持库

任务要求:在Ardunio 完成STM32板子的串口通信程序:
1)持续向串口输出“Hello world!”;
2)当接收到“stop!”时,停止输出。
提取码:q251
Arduino IDE
所用的核心板为野火STM32F103指南者

1.安装步骤

(1)点击这个进行安装
在这里插入图片描述
点开后一直点下一步即可
安装驱动
在这里插入图片描述
(2)将原先的文件中的Arduino_STM32整个文件夹拷贝到安装目录下的hareware里
在这里插入图片描述
(3)在Arduion中安装编译支持文件
点开工具、开发板、开发板管理器然后搜索ARM点击第一个安装
在这里插入图片描述
(4)安装串口烧录软件
在这里插入图片描述
安装即可
在这里插入图片描述
如图所示连接USB 转串口并用短路帽让BOOT0接入高电平1,BOOT1接入低电平0
在这里插入图片描述
打开烧录文件设置好你的端口
在这里插入图片描述
在这里插入图片描述
点击next后
在这里插入图片描述
在这里插入图片描述
安装完成
在这里插入图片描述

2.代码测试

按下面步骤调好设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将以下代码编译烧录

int flag=1;   
char Stop[]="stop\n";
void setup() {
    
    
//初始化
pinMode(PB0, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色,可根据需要改动
Serial.begin(115200);
}
void loop() {
    
    
int i=0,flag_s=0;
char inByte[50];
digitalWrite(PB0, HIGH); //小灯亮
delay(500); // 延迟
digitalWrite(PB0, LOW); //小灯灭
delay(500); // 延迟
while (Serial.available()> 0)     //当发送缓冲区有数据时
{
    
    
        inByte[i] = Serial.read();    //从串口的缓冲区取出并读取一个Byte的数据
        delay(10); 
        i++ ;                              
}
if(Stop[i]=inByte[i])
{
    
    
  if(Stop[i-1]==inByte[i-1]&&Stop[i-2]==inByte[i-2]&&Stop[i-3]==inByte[i-3])
  {
    
    
  flag=0;
  Serial.println("收到!");
  }//当收到stop命令时停止并回复收到
}
if(flag==1)
{
    
      
Serial.println("Hello World!");//向串口发送数据
delay(100); // 延迟
}
}

在这里插入图片描述

3.调试结果

在这里插入图片描述
crtl+shift+M打开串口监视器
在这里插入图片描述

二、分析基于标准库函数与基于HAL库函数的stm32编程方式的差异。

ST为开发者提供了非常方便的开发库。到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。其中标准库与HAL库最常用,LL库只是最近新添加的。
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
HAL库与新增的LL库,都是ST公司提供的新标准库,包含在ST为新的标准库注册了一个新商标:STMCube™当中。LL库和HAL库两者相互独立,只不过LL库更底层。而且,部分HAL库会调用LL库(例如:USB驱动)。同样,LL库也会调用HAL库。
可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了,比如F7系列。现在,ST主推HAL库,目前,HAL库已经支持STM32全线产品。
比较:
新芯片现在只推出HAL库,HAL库与标准库比较,所用的API函数不一样,两者也相互独立,优势在于可以用cubeMX生成代码。(ST专门为其开发了配套的桌面软件STMCubeMX,开发者可以直接使用该软件进行可视化配置,大大节省开发时间。)
转载自STM32标准库与HAL库总结

三、试玩stduino IDE

在这里插入图片描述
stduino IDE十分简洁,使用起来十分简单 ,中英文可以自由切换, 一键USB\Stlink下载 ,支持串口调试助手功能俱全十分方便。
在有了Keil、Ardunio,觉得是否还有必要“再造车轮”
我认为还是有必要的,因为不同的软件有不同的功能适用的人群也不一样,相对于Keil、Ardunio软件stduino IDE确实起步较晚,但是stduino IDE毕竟是国人版的MCU集成开发平台对于我们来说还是方便许多的stduino ID还是存在许多问题的,我认为随着往后的开发和探索一定会越做越好的。

猜你喜欢

转载自blog.csdn.net/m0_51039112/article/details/111143898