文章目录
一、基于Ardunio的STM32串口通信
1、要求
安装 Ardunio IDE 和相关软件支持库,在Ardunio 完成STM32板子的串口通信程序:
1)持续向串口输出“Hello world!”;
2)当接收到“stop!”时,停止输出。
2、安装Arduino
借鉴下篇博客:
https://blog.csdn.net/quansirx/article/details/104906563
注意安装完成后要将stm32固件库放入安装目录的hardware文件夹下:
3、配置开发环境
-
工具–>开发板–>开发版管理器
-
安装Arduino SAM开发板
-
选择硬件类型与下载方式
4、stm32串口通信
-
端口连接
我使用的是野火mini开发板,直接用usb转串口相连即可。
-
选择端口
-
打开例程
-
写改代码
代码如下:
String rString = ""; // 接收到达字符串 int flag=1; //发送或接收标志 String Stop_flag = "stop"; //停止发送 String Begin_flag = "begin"; //重新发送 void setup() { Serial.begin(115200); // 串口初始化 } void loop() { while(Serial1.available() > 0) //接收缓存区有数据 { rString = Serial1.readString(); //将接收数据存到接收字符串里 } if (rString == Stop_flag) { flag = 0; //表明停止发送 } if (rString == Begin_flag) flag = 1; //表明恢复发送 if (flag == 1) { Serial.println("Hello World"); delay(1000); } }
-
编译后下载
-
打开串口进行验证
二、基于标准库函数与基于HAL库函数的stm32编程方式的差异
1.标准库
标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
2.HEL库
HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。
三、关于 stduino IDE
-
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
-
软件界面如下图
我认为虽然已经有了Keil、Ardunio优秀的集成开发平台,但我认为仍有必要继续研发,因为随着各方面的进步,以前的软件不能满足我们的需求,仍有发展的必要。