14周Ardunio和HAL库函数编程

本文介绍了如何使用ArdunioIDE进行STM32串口通信,包括环境配置、程序编写及烧录步骤。同时,对比了标准库和HAL库在STM32编程中的差异,强调了HAL库的高抽象性和易移植性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ardunio和HAL库函数编程

一、基于Ardunio 的STM32板子的串口通信

1、开发环境

开发软件: Ardunio IDE
开发板:stm32f103指南者开发板

2、 Ardunio IDE的安装

下载链接:Ardunio IDE
提取码:q251
(1)根据链接下载好压缩包后,解压
双击安装,根据提示完成

(2)安装好后,找到安装位置,然后
将Arduino_STM32复制到Arduino IDE安装目录下的hareware下


(3)打开Arduion软件,查看菜单栏\工具\开发板
如图,可以看见STM32各系列的芯片
在这里插入图片描述

3、配置开发板支持库

点击如图位置

输入ARM,点击安装,等待完成

二、完成STM32板子的串口通信

1、选择芯片

按照下图方式配置环境要求



2、连接开发板

直接用usb连接即可

将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,TXD与A10相连

3、在Ardunio写入程序,烧到板子

程序代码如下:

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); // 延迟
}
}

点击端口,选择串口3

运行程序,烧到板子
点击这图中两个图标,验证,上传

4、运行结果

开发板小灯闪烁情况

点击工具中的串口监视器,查看输出情况

设置波特率为115200
1)持续向串口输出“Hello world!”;2)当接收到“stop!”时,停止输出。

三、基于标准库函数与基于HAL库函数的stm32编程方式的差异

ST为开发者提供了非常方便的开发库。到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。

1、标准外设库

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。标准库都是基于寄存器的操作。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。

2 、HAL库

HAL库是ST公司提供的新标准库,包含在ST为新的标准库注册了一个新商标:STMCube™当中。可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了,比如F7系列。现在,ST主推HAL库,目前,HAL库已经支持STM32全线产品

3、试玩stduino IDE体会

stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,已率先支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
安装连接:Stduino
在这里插入图片描述

4、总结

与使用Keil 5实现串口通信相比,基于Arduino IDE软件的STM32串口通信更为方便,程序也更加简洁。以上就是基于Ardunio 完成STM32开发板的串口通信程序。

<think>好的,用户想下载Arduino DS18B20温度传感器的库函数。首先,我需要确定DS18B20常用的有哪些。常见的有DallasTemperatureOneWire,这两个通常是配合使用的。用户可能不知道需要同时安装这两个,所以需要明确说明。 接下来,步骤需要分安装的方法。Arduino IDE通常通过管理器安装,这是最方便的方式。另外,用户可能也会手动下载,所以需要提供两种方法。需要检查步骤是否正确,比如在IDE的菜单中找到“项目”->“加载”->“管理”,然后搜索名。 然后,用户可能需要示例代码来测试传感器。需要确保代码正确,包含必要的头文件,初始化OneWireDallasTemperature对象,并正确读取温度。代码中的注释要清晰,用户容易理解。 常见问题部分要考虑用户可能遇到的连接问题,比如上拉电阻是否需要,或者地址无法识别的情况。需要给出排查步骤,比如检查接线,确保电源稳定,尝试搜索传感器地址等。 引用部分需要正确标注,虽然用户提供的引用链接是关于ATmega128转Arduino的内容,可能与当前问题关联不大,但按照要求还是需要包含。可能在引用说明中提到的官方资源或文档链接,但用户提供的链接可能不太相关,所以需要处理得当。 最后,生成相关问题时要考虑用户可能进一步的需求,比如传感器校准、多传感器使用、替代等。确保问题覆盖用户可能遇到的后续疑问。</think>### 如何下载Arduino DS18B20温度传感器库函数? #### 步骤说明: 1. **打开Arduino IDE** 确保已安装最新版Arduino IDE(可从官网[arduino.cc](https://www.arduino.cc/)下载)。 2. **通过管理器安装(推荐)** - 点击菜单栏 `项目` ➔ `加载` ➔ `管理`,打开管理器。 - 在搜索栏输入 `DallasTemperature`,找到后点击安装(此包含DS18B20驱动,需依赖`OneWire`,系统会提示自动安装)[^1]。 - 验证是否安装成功:在示例代码中查看是否存在 `DallasTemperature` 相关示例。 3. **手动安装(备用方法)** - 从GitHub下载文件: - DallasTemperature:[milesburton/DallasTemperature](https://github.com/milesburton/Arduino-Temperature-Control-Library) - OneWire:[PaulStoffregen/OneWire](https://github.com/PaulStoffregen/OneWire) - 将下载的ZIP文件通过 `项目` ➔ `加载` ➔ `添加.ZIP` 导入。 #### 示例代码验证: ```cpp #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 2 // 传感器数据线连接的Arduino引脚 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(9600); sensors.begin(); } void loop() { sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); Serial.print("温度: "); Serial.print(temp); Serial.println("°C"); delay(1000); } ``` #### 常见问题: - **接线错误**:DS18B20需接4.7kΩ上拉电阻(数据线与VCC之间)。 - **冲突**:若编译报错,检查是否同时安装了旧版。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值