本帖最后由 51xlf 于 2022-7-1 17:39 编辑
#申请原创# @21小跑堂
1。环境搭建
大多的时候都是使用的是keil或者iar开发stm32,里面很多的库都是需要自己来写的。不利于快速的开发stm32的产品。
这里介绍如何使用arduino快速的实现stm32产品的开发,集成了很多的库函数可以直接使用的。Arduino简单的开发方式使得开发者更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
当然了arduino开发也是有它的缺陷,有的时候一些莫名其妙的问题出现,不如使用在其他的IDE开发的简单方便。
首先,要搭建arduino IDE的开发环境。点击这个网址。
https://www.arduino.cc/en/software
最新版本的是1.8.19,点击下载zip文件,解压就可以使用了。
你可以直接跳过,点击“Just Download”下载文件
把压缩文件解压,得到如下的文件夹。这个就是开始开发avr的arduino开发板了,这个还是很简单的,用法也简单。
集成的库函数,可以直接调用,没有必要自己重新编写库函数的。用法简单。
需要在文件夹里面--hardware里面添加上,stm32的支持文件 。现在奉上下载连接
https://github.com/rogerclarkmelbourne/Arduino_STM32
打包下载这个库,得到是压缩文件,重命名为Arduino_STM32,解压以后放在编译环境的hardware文件夹里面。
如下所示,1是指的要放置的文件夹,2是avr的支持库,3是stm32的支持库。
这样打开,arduino ide环境,就能看到当前已经支持stm32的开发了。
查找目录如下:
2. 软件开发
新建工程文件,并保存该工程文件。
arduino编程分为两个部分。setup是初始化,loop是持续运行的文件,相当于while的功能。
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
arduino IDE中引脚跟keil不一样,他是直接使用的宏定义实现的,这里使用的是stm32最小系统实现的开发,
这块开发板自带一个LED在PC13上,所以使用这个引脚做测试。实现的效果是绿色的LED间隔1s闪烁的功能。
编写代码如下:
void setup() {
// put your setup code here, to run once:
pinMode(PC13, OUTPUT);//初始化该引脚PC13为输出的引脚,控制LED闪烁
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(PC13, HIGH);//将PC13引脚置为高电平
delay(1000);//演示函数,使用是内部的延时函数
digitalWrite(PC13, LOW);
delay(1000);
}
3 硬件烧录
arduino是串口或者使用stlink烧录程序的。
如果使用串口烧录,USB转TTL的TXD连接到PA10,RXD连接到PA9;boot0置1(接到3.3V) ,boot1置0(接地)。
我这里使用的是stlink烧写程序的。(使用的是nucleo板子上的stlink)
从工具-upload mothed-stlink。
看看演示效果。
4.功能扩展
这里再测试一下串口吧。stm32的串口配置还是比较复杂的,但是在arduino IDE开发串口就没有那么复杂了,简单的串口初始化,配置波特率就可以。
Serial.begin(9600);
Serial.println("hello, 21ic");
|
利用Arduino快速搭建stm32开发环境,可方便用户快速实现方案,加速测试流程。但是弊端也很不友好,注意使用环境哦