文章目录
一、Ardunio是什么?
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。来源于 百度百科。
二、Ardunio IDE安装以及相关配置
1、软件安装以及配置
相关资料:
Arduino IDE开发STM32F10X的环境.
提取码: q251
2、安装Arduino IDE并配置
1、安装软件
打开arduino-1.8.12-windows.exe进行安装
软件安装路径自己选择最好不要安装在系统盘中
然后一路点击’NEXT’即可安装成功。
2、配置
将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino IDE安装目录下的hareware下
拷贝之后在Arduino中进行检查下:工具>开发板,在下一级菜单目录下就有STM32F1系列的板子了。
在Arduion中安装编译支持文件
菜单栏>工具>开发板>开发板管理器,进行搜索ARM。
这个是在线安装需要下载3~5分钟。
3、安装串口软件
flash_loader_demo_v2.8.0.exe
插入端口
由于之后串口烧录文件需要用到端口所以这一步进行端口连接。
STM32开发板上的BOOT0用短路冒接入高电平1,BOOT1用短路冒接入低电平0。
4、测试软件以及烧录测试程序
1、打开Arduino
配置如下:
这里建议也进行如下设置
文件>首选项
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); // 延迟
}
}
打开串口监视器
工具->串口监视器
三、标准库函数与HAL库函数的stm32编程方式差异
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。标准库都是基于寄存器的操作。
HAL库,Hardware Abstraction Layer的缩写,即硬件抽象层,HAL库工程一般使用Cube软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,更方便的实现跨STM32产品的最大可移植性。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能。
HAL库优点在于:
便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。
和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。