天天看点

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

一、实验准备

实验目标:

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

1)持续向串口输出“Hello world!”

2)当接收到“stop!”时,停止输出。

实验工具:

硬件:

  • 野火指南者

软件:

  • Ardunio IDE

Arduino安装包

链接:https://pan.baidu.com/s/1mw1w8vqPEu3uu-LFe1xN2A

提取码:nsqt

二、Ardunio下载安装及环境配置

下载安装包后,将相关的配置文件下载下来,进行环境配置

国外大佬的配置文件

解压下好的安装包,双击安装

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

将下载下来的配置文件Arduino_STM32 文件夹拷贝到 Arduino IDE 安装目录下的 hareware 文件夹下

打开arduino,工具→开发板

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

可以看到STM32F1系列的板子

工具→开发板→开发板管理器,搜索arm,选中 Cortex-M3系列的编译支持文件并安装

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

完成后打开安装包,双击安装

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

三、串口与烧录.bin文件

调整指南者的(黄色的)短路帽,连接usb线

短路帽接法:

  • RXD — A9
  • TXD — A10
  • BOOT0 — 3V3
  • BOOT1 — GND
其实也就移动了一块,最后不要忘了将其移回去!
【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

打开刚安装的Demonstrator GUI,出现了串口COM3

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

一直next直至

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

打开刚下载好的安装包,解压

STM32duino-bootloader-master.zip

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

然后勾选

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

打开

STM32duino-bootloader-master\binaries\

选择.bin文件,我这选的是

generic_boot20_pb0.bin

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

添加完成后点next

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

烧录完成点close关闭

四、实现串口程序

开发板我选择的是

Generic STM32F103V series

(这个要根据自己的CPU 型号选择)

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

Variant 选择的是:

STM32F103VE

(还是根据自己的 CPU 型号选择)

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

Upload method 选择的是:

Serial

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

CPU Speed(MHz) 选择的是:

72Mhz

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

Optimize选择的是 :

Smallest(default)

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

端口选择的是:

COM3

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

以下是程序代码:

String data = "";

void setup() {
  // put your setup code here, to run once:
  pinMode(PB0, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  while (Serial.available() > 0)  
  {
    data += char(Serial.read());
    delay(2);
  }
  if (data == "stop!\n")
  {
    digitalWrite(PB0, HIGH);
    Serial.println("STM32 has stopped!\n");
    data = "";
    while(1);
  }
  digitalWrite(PB0, HIGH); //turn the LED on (HIGH is the voltage level)
  delay(1000); // wait for a second
  digitalWrite(PB0, LOW); //turn the LED off by making the voltage LOW
  delay(1000); // wait for a second
  Serial.println("Hello World!");
  delay(1000); // wait for a second
}
           

点击左上角保存文件并编译

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

然后烧录到板子上

烧录前要按下板子上的复位键

RESET

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

上传成功后就能看到led灯在闪

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

五、演示结果

右上角放大镜打开串口监视器,右下角设置波特率为

115200

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

输入

stop!

后程序停止

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

灯也不闪了

【嵌入式】Ardunio 完成STM32开发板的串口通信程序一、实验准备二、Ardunio下载安装及环境配置三、串口与烧录.bin文件四、实现串口程序五、演示结果六、参考

六、参考

国外的 Arduino IDE 基于 STM32 的串口通讯与 LED 灯闪烁