Ardunio和HAL库函数的stm32编程

您所在的位置:网站首页 arduinoIDE开发stm32 Ardunio和HAL库函数的stm32编程

Ardunio和HAL库函数的stm32编程

2024-07-10 17:38| 来源: 网络整理| 查看: 265

Ardunio的STM32串口通信 一、安装Ardunio IDE和相关支持库1、Ardunio是什么2、安装及配置过程 二、STM32板的串口通信程序1.代码2.烧录 三、基于标准库函数与HAL库的差异1、标准库2、HAL库 四、了解stduino IDE总结

一、安装Ardunio IDE和相关支持库 1、Ardunio是什么

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。具有使用类似Java、C语言的Processing/Wiring开发环境。

● 跨平台 Arduino IDE可以在Windows、Macintosh OS X、Linux三大操作系统上运行,而其他的大多数控制器只能在Windows上开发。

● 简单清晰 Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。

● 开放性 Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。

● 发展迅速 Arduino也是一个优秀的硬件开发平台。简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。

2、安装及配置过程

双击arduino-1.8.12-windows.exe安装,一直默认next。 在这里插入图片描述 在这里插入图片描述 安装结束。

将打包文件中的Arduino_STM32整个文件夹复制到Arduino IDE安装目录下的hareware下 在这里插入图片描述 打开Arduino,安装编译支持文件 在菜单栏选择工具–>开发板;“Arduino Uno”–>第一栏的开发板管理器—>安装如图所示编译支持文件 在这里插入图片描述 安装串口烧录软件flash_loader_demo_v2.8.0.exe 在这里插入图片描述 next–>Finish安装结束

将USB转TTL工具上的VCC,GND,TXD,RXD 分别与开发板的 VC,GND,RXD,TXD 相连。 将STM32开发板的BOOT0用短路冒接入高电平1,用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连 BOOT1用短路冒接入低电平0 确认USB转TTL工具连线无误后,将USB转TLL插入电脑USB接口 在系统菜单中找到Demonstrator GUI并打开

测试芯片能否正常工作: 此处采用Ardunio本身的实例程序。在调试之前,根据下载方式、芯片等,对Ardunio进行配置,这里用的是指南者,采用的串口下载。

在这里插入图片描述 在这里插入图片描述

二、STM32板的串口通信程序

在Ardunio 完成STM32板子的串口通信程序:1)持续向串口输出“Hello world!”;2)当接收到“stop!”时,停止输出。

1.代码 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); // 延迟 } }

选择连接的串口4

2.烧录

依次点击验证,烧录。(每次烧录文件前要按开发板上的RESET按钮) 在这里插入图片描述 小灯开始闪烁,串口收到的信息点击串口监视器及可看到

在这里插入图片描述 输出显示 在这里插入图片描述 在这里插入图片描述

三、基于标准库函数与HAL库的差异 1、标准库

STM32有非常多的寄存器,开发困难,为此要为每款芯片都编写了一份库文件。在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。没有可移植性。使用很多。

基于标准库的stm32代码:

int main(void) { u16 t; u16 len; u16 times=0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 LED_Init(); //LED端口初始化 KEY_Init(); //初始化与按键连接的硬件接口 while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 printf("\r\n您发送的消息为:\r\n\r\n"); for(t=0;t


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3