STM32
登录
直播中
李继明
7年用户
1074经验值
私信
关注
[问答]
Arduino是什么?如何对Arduino进行编程呢
开启该帖子的消息推送
Arduino
编程
编程语言
Arduino是什么?如何对Arduino进行编程呢?
回帖
(1)
陶珪扁
2021-12-8 15:42:56
一、Ardunio下完成stm32的串口通信
(一)简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做威廉希尔官方网站 连接的Arduino威廉希尔官方网站 板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
(二)安装Ardunio
1、下载并打开安装包,一直默认安装即可。
注意选择安装的路径不要出现中文字符
(三)配置Ardunio
1、找到安装包中Ardunio_STM32文件,选择并复制。
2、找到安装的Arduino,点击Arduino—>hardware,点击右键,进行粘贴即可。
3、打开安装完成的Arduino,点击菜工具—>开发板“Generic STM32F103V series”—>开发板管理器。
4、输入ARM关键字搜索,选中Cortex-M3系列的编译支持文件并安装。
(四)程序代码
代码功能:
1)持续向串口输出“Hello world!”;
2)当接收到“stop”时,停止输出。
int flag=1; char Stop[]="stopn";void setup() {//初始化pinMode(PB5, 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
= Serial.read(); //从串口的缓冲区取出并读取一个Byte的数据 delay(10); i++ ; }if(Stop
=inByte
){ 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); // 延迟}}
(五)连接硬件并执行
1、将电脑与板子连接好。
2、点击Ardunio可以看见多了一个端口,我这里显示是COM3端口。
3、一次点击验证、烧录程序。然后可以看到小灯闪烁,在工具串口监视器里面可以进行查看。
4、点击后,需要设置波特率,stm32最高设置为115200,运行结果如下所示。
二、基于标准库函数与基于HAL库函数的stm32编程方式的差异
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。
三、总结
通过本次学习,发现Arduino真的很方便,可以在软件上进行程序编写、烧录、串口调试等一系列功能,使用十分方便快捷,也不用过多去安装各种软件来进行操作。
一、Ardunio下完成stm32的串口通信
(一)简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做威廉希尔官方网站 连接的Arduino威廉希尔官方网站 板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
(二)安装Ardunio
1、下载并打开安装包,一直默认安装即可。
注意选择安装的路径不要出现中文字符
(三)配置Ardunio
1、找到安装包中Ardunio_STM32文件,选择并复制。
2、找到安装的Arduino,点击Arduino—>hardware,点击右键,进行粘贴即可。
3、打开安装完成的Arduino,点击菜工具—>开发板“Generic STM32F103V series”—>开发板管理器。
4、输入ARM关键字搜索,选中Cortex-M3系列的编译支持文件并安装。
(四)程序代码
代码功能:
1)持续向串口输出“Hello world!”;
2)当接收到“stop”时,停止输出。
int flag=1; char Stop[]="stopn";void setup() {//初始化pinMode(PB5, 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
= Serial.read(); //从串口的缓冲区取出并读取一个Byte的数据 delay(10); i++ ; }if(Stop
=inByte
){ 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); // 延迟}}
(五)连接硬件并执行
1、将电脑与板子连接好。
2、点击Ardunio可以看见多了一个端口,我这里显示是COM3端口。
3、一次点击验证、烧录程序。然后可以看到小灯闪烁,在工具串口监视器里面可以进行查看。
4、点击后,需要设置波特率,stm32最高设置为115200,运行结果如下所示。
二、基于标准库函数与基于HAL库函数的stm32编程方式的差异
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。
三、总结
通过本次学习,发现Arduino真的很方便,可以在软件上进行程序编写、烧录、串口调试等一系列功能,使用十分方便快捷,也不用过多去安装各种软件来进行操作。
举报
更多回帖
rotate(-90deg);
回复
相关问答
Arduino
编程
编程语言
怎样通过
Arduino
IDE对
Arduino
UNO
进行
编程
呢
2022-01-24
1265
如何在STM32上去使用
arduino
的方法来
进行
编程
呢
2021-12-15
3834
为什么希望使用
Arduino
IDE对ATMEGA8
进行
编程
?
2021-07-27
1177
怎样采用NOMEMCU芯片+
Arduino
IDE去
进行
编程
呢
2022-01-18
1417
怎么
编程
才能让ESP8266和
Arduino
UNO实现通讯
呢
2022-01-14
1209
如何使用
Arduino
IDE对ESP8266
进行
编程
?
2023-02-23
276
什么是
arduino
呢
?
arduino
有何作用
呢
2022-01-24
1531
怎样去开发一种基于LUA
编程
和
Arduino
IDE下的nodemcu开发板
呢
2022-02-15
863
labview使用LIFA函数
编程
,如何烧到
Arduino
UNO中?
2015-10-31
7553
新手求解关于FRDM-K64F和
Arduino
兼容的问题
2017-11-27
2568
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分