基于Arduino IDE的STM32串口通信

Ardunio简介

  • Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE),Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
  • Arduino IDE开发的优点是更简单,易用,上手,适合新手使用。缺点是省去了更多代码配置环节,不便于底层理解。但这不影响Arduino IDE开发的强大性,一般情况下开发板实现相同的功能。
  • Arduino IDE开发比keil开发使用更少的代码就能实现,这一点有点类似编程界的Python与其他编程语言的对比。但如果想在底层方面了解更多,如亲自操作开发板寄存器的话,建议还是使用keil+库函数开发吧。

一、Ardunio IDE安装

(1)安装包获取

云盘资料链接:Ardunio安装包
提取码: q251

  • a.安装包下载后直接解压
  • b.双击运行,按照默认方式安装即可在这里插入图片描述
  • c.将STM32文件夹移植到刚刚安装的Ardunio的hardware文件下
    在这里插入图片描述

(2)安装后相关配置

  • a.添加开发板
    在这里插入图片描述
  • b.安装即可
    在这里插入图片描述
  • c.如下配置
    在这里插入图片描述
  • d.找到安装包双击运行
    在这里插入图片描述
  • e.选择自己空闲的端口,然后一直点击NEXT
    在这里插入图片描述
  • f.直到如下界面时,停止,然后进入安装包随意选择一个就行,这里主要完成对串口通信的处理,对LED闪烁影响不大
    在这里插入图片描述
  • 至此所有配置全部完成

二、实验例程

(1)实验要求

安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序:

  • (1)持续向串口输出“Hello Livechen~~~”
  • (2)当接收到“stop!”时,停止输出
  • (3)输入“begin”时,又继续输出

(2)实验代码


int flag = 1; //串口发送标志位,1表示正在发送,0表示停止发送
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);   //打开串口,波特率为115200
}

void loop() {
  // put your main code here, to run repeatedly:
  if (flag == 1)
  {
    Serial.println("Hello Livechen~~~");
    delay(1000);
  }
  usart();
}
void usart()
{
  String Stop_flag = "stop\n"; //停止发送信号
  String Begin_flag = "begin\n"; //重新发送信号
  String data = "";  //储存接受到的数据

  while (Serial.available() > 0) //判断串口是否接收到数据
  {
    data = Serial.readString(); //读取字符到字符串data中
    //Serial.print(data);
  }
  if (data == Stop_flag)
    flag = 0; //表明停止发送
  if (data == Begin_flag)
    flag = 1; //表明恢复发送
}

(3)实验结果展示

在这里插入图片描述

三、总结

  • 1、在线安装开发板时速度较慢请耐心等待
  • 2、注意开发板的TXD是与USB转TTL工具的RXD相连。要将STM32开发板上的BOOT0用短路冒接入高电平1BOOT1用短路冒接入低电平0。不然会一直提示检测不到设备
  • 3、在Arduino下编程相对于KEIL中来说简单了许多,代码量明显减小,希望大家也能灵活的掌握这种方式,闲来无事之时可以把玩。

四、参考文献

[1]使用Arduino IDE开发STM32F10X

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值