菜鸟入门8,在Ardunio 完成STM32板子的串口通信程序


前言

此次,本菜鸟将带着大家探索如何在Ardunio下实现stm32板子的串口通信,有同学就要问了:那什么是arduino呢?让我们先来了解什么是arduino。


一、在Ardunio 完成串口通信

什么是arduino?

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

这是来自百度百科的介绍

arduino特点

Arduino IDE开发的优点是更简单,易用,上手,适合新手使用。缺点是省去了更多代码配置环节,不便于底层理解。

简单地了解完arduino,我们就可以进行下一步探索啦。

arduino的安装

安装地址 提取码: q251
在这里插入图片描述
其中Arduino_STM32-master.zip中的配置文件是一位国外大佬写的
STM32duino-bootloader-master.zip:相关串口文件

打开arduino-1.8.12-windows.exe进行安装
在这里插入图片描述
接下来按照提示安装就可以
在这里插入图片描述
然后把大佬写的Arduino_STM32整个文件复制到Arduino IDE安装目录下的hareware下
检查:工具>开发板
在这里插入图片描述
说明拷贝成功

arduino 的配置

点击开发板管理器并选择 Arduino SAM Boards(32-bit ARM Cortex-M3) 安装。
在这里插入图片描述

连接电脑与指南者

注意这里的连接方式使用usb,所以线一定要连接usb转串口
在这里插入图片描述
接着在J17模块用跳帽将boot0与3v3相连,
boot1与GND相连,RXD与A9相连,TXD连A10

在这里插入图片描述

编程

在arduino上新建一个文件并写入如下代码

int flag=1;   
char Stop[]="stop\n";
void setup() {
//初始化
pinMode(PB1, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色
Serial.begin(115200);
}
void loop() 
{
  int i=0,flag=1;
  char inByte[1000];
  digitalWrite(PB1, HIGH); //小灯亮
  delay(500); // 延迟
  digitalWrite(PB1, 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;
      }
   }
  if(flag==0)
   {
    Serial.println("ok");//当收到stop命令时停止并回复ok
    while(1)
    {continue;}
    }
   if(flag==1)
   {
    Serial.println("Hello world!");//向串口发送hello world!
    delay(100); // 延迟
    }
 }

在这里插入图片描述
保存文件,并在开发板中选择指南者
在这里插入图片描述
选择上传方式:Serial
在这里插入图片描述
端口选择指南者连接的端口(我这里连接的是com7)
在这里插入图片描述
在这里插入图片描述
结束后点击编译
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
再点击上传
在这里插入图片描述

效果

在这里插入图片描述
打开串口监视器,将它的波特率设置为115200
窗口中出现hello world!
当发送stop时
返回ok
在这里插入图片描述

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

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。

HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。

三.试玩 stduino IDE体会

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

官网下载stduino IDE并解压
注意:路径不能包含中文,特殊字符和空格
运行它
在这里插入图片描述
体会:stduino比起keil和arduino来说,界面更加简洁,更容易上手,而且自带一键下载和串口调试。所以说,“再造车轮”是有必要的,只有再一次次地革新与升级中,才能开发出更好的产品,才能够更加方便用户。

总结

以上就是关于arduino的简单入门,希望这篇文章能对你有所帮助。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值