文章目录
前言
此次,本菜鸟将带着大家探索如何在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的简单入门,希望这篇文章能对你有所帮助。