其他分享
首页 > 其他分享> > Ardunio IDE进行STM32的串口通信

Ardunio IDE进行STM32的串口通信

作者:互联网

目录

一、安装和配置Arduino IDE开发环境

1.Arduino 简介

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。

它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE。

Arduino IDE适用于Windows、Macintosh OS X、Linux三大主流操作系统

对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。百度百科

Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。

2.软件安装及配置

拷贝之后在Arduino中进行检查下:工具>开发板,在下一级菜单目录下就有STM32F1系列的板子了。

2.安装编译支持文件
菜单栏>工具>开发板>开发板管理器,搜索ARM。
下载好慢好慢好慢,建议科学上网。在这里插入图片描述
3.安装串口烧录软件flash_loader_demo_v2.8.0.exe
在这里插入图片描述
插上STM32指南者,一路next即可
在这里插入图片描述

二、编译及烧录

1、配置开发板型号系列及端口

在这里插入图片描述

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、程序编译

在这里插入图片描述

4、程序烧录

在这里插入图片描述

5、结果

打开串口监视器发送消息
在这里插入图片描述
在这里插入图片描述

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

1.标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。标准库都是基于寄存器的操作。
HAL库,Hardware Abstraction Layer的缩写,即硬件抽象层,HAL库工程一般使用Cube软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,更方便的实现跨STM32产品的最大可移植性。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能。
2.HAL库优点在于:
便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
3.库函数配置好串口以后,当串口接收到数据再发送给上位机时需要循环发送,但是HAL库就直接调用HAL_UART_Transmit函数就能直接将串口的数据发给上位机。
4.库函数的串口通信函数只适用于STM32F1系列,对于其他系列的就不能通用了;但是对于HAL库来说,只要外设相同,基本上能够很容易的移植。

四、Ardunio IDE与stduino IDE对比

arduino

简单易用 ,可以完全用c语言进行软件代码调试 ,也有很多库可以进行下载调用。但安装编译支持文件时真的很慢。操作界面清晰简洁,有点像少儿编程软件,没有断点调试 ,因而如果进行真正的大型工程不太行。

stduino
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已率先支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
也完全用c语言编写调试程序, 能进行断点调试!! 和keil一样可以添加文件和工程 ,还有很多功能没有体验,下次一定。

标签:HAL,Arduino,STM32,Ardunio,串口,IDE,库函数
来源: https://blog.csdn.net/weixin_43757736/article/details/111143951