完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、Arduino
Arduino IDE开发的优点是更简单,易用,上手,适合新手使用。缺点是省去了更多代码配置环节,不便于底层理解。但这不影响Arduino IDE开发的强大性,一般情况下开发板实现相同的功能,Arduino IDE开发比keil开发使用更少的代码就能实现,这一点有点类似编程界的Python与其他编程语言的对比吧。想在底层方面了解更多,如亲自操作开发板寄存器的话,建议还是使用keil+库函数开发吧。1、Arduino下载 可以直接去Arduino官网进行下载,这里为了方便,可以直接进入云盘进行接下来完整的资料的下载 得到下面的文件即可 然后我们直接点击选中的程序进行安装Arduino IDE,安装过程基本就是默认即可 接下来要进行的是把整个Arduino_STM32整个文件夹拷贝到Arduino IDE安装目录下的hareware下,如图所示: 这样就可在开发板选项中看到各种STM32开发板了: 接下来进行安装编译支持文件:首先打开应用中的“工具”界面,选择如图所示选项: 进入界面以后在搜索框中输入“ARM”选中第一个就可以进行安装,完成以后退出即可。 2、Arduino实验示例 a、开发板设置 首先把STM32开发板和电脑进行连接好,注意连接的是“USB转串口”接口。如图: 接下来需要将BOOT引脚的默认方式修改一下:用跳帽将BOOT0与3v3相连,BOOT1与GND相连,如上图连接即可。 调整好跳帽以后就打开电源即可。 b、Arduino编译烧录 首先我们打开Arduino软件,新建一个工程: 然后直接把以下程序复制进去,该程序完成持续向串口输出“Hello world”,然后输入“stop”即停止。 int flag=1; char Stop[]="stopn";void setup() {//初始化pinMode(PB1, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色,可根据需要改动Serial.begin(115200);}void loop() { int i=0,flag=1; char inByte[1000]; digitalWrite(PB1, HIGH); //小灯亮 delay(500); // 延迟 digitalWrite(PB1, 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; } } if(flag==0) { Serial.println("收到!");//当收到stop命令时停止并回复收到! while(1) {continue;} } if(flag==1) { Serial.println("Hello world!");//向串口发送数据 delay(100); // 延迟 } } 输入完成以后进行先进行保存,然后在选择对应的开发板。 我们买的是STM32103VET6指南者因此我们选择STM32103VE即可; 接下来的上传方式选择如图所示: 接下来选择端口:端口的选择可以通过开关开发板电源来知道,如果打开电源,新出现的端口就是所需端口,除此之外,还可以我的电脑中通过设备管理器进行明确。 基本设置完以后,就可以进行编译 显示编译完成,此时要注意,先不要直接上传,先按一下开发板的复位键,然后在进行上传烧录 此时可以看到开发板上的灯亮了 此时点击Arduino软件左上角工具->串口监视器 将波特率设置为115200波特率。 然后打开监视器就可以看到程序结果了,与作业的要求一致 二、基于STM32两种库 标准库函数
注意:标准外设库不支持从STM32 L0,L4和F7开始的之后的STM32系列芯片也是针对某一系列芯片而言的,没有可移植性。
HAL库函数
可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了,比如F7系列。目前,HAL库已经支持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("rn您发送的消息为:rnrn"); for(t=0;t 观察代码可以看出在函数内容上是有所不同的: 通过这两个部分可以看出HAL库比起标准库具有很简洁,很方便的特点。 三、Stduino Stduino软件可以在官网进行下载: 简介: Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,已率先支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能!IDE当前支持的功能有: GDB调试 封装库下载安装 代码自动补全提示 中英文模式 UTF-8GBK编码格式 代码快速格式化 SWD串口程序下载&调试(已验证) DFU程序下载方式(待验证) USB HID程序下载方式(待验证) maple DFU程序下载方式(待验证) maple DFU2程序下载方式(待验证) MassStorage程序下载方式(待验证) 更多功能细节请搜索stduino.com进行了解 已经支持的芯片&板型列表: Stduino UNO&Nano Nucleo 144 boards Nucleo 64 boards Nucleo 32 boards Discovery boards Eval boards STM32MP1 series coprocessor boards Generic STM32F0 boards Generic STM32F1 boards Generic STM32F3 boards Generic STM32F4 boards Generic STM32H7 boards Generic STM32L0 boards (免安装,解压后双击Stduino.exe即可运行) 下面是Stduino IDE的界面: Arduino和Stduino对比: 通过两个简单的程序来属性使用Stduino IDE,可以发现它跟Ardunio还比较类似,尤其是在代码编写上风格基本一致。但是,两者在界面上却存在比较大的差别,Ardunio更加简单,没有过多的渲染,而Stduino就比较丰富,界面上做的更加精美。总的来说,其实两者在使用上是没有什么差别的。与keil相比来说,这个开发工具跟Ardunio一样,对于那些对keil操作不太熟练的人来说,这个开发工具的操作方式更加简单,更加容易上手。每种工具的出现,都是在一些软件的基础之上加以改进了。就像Stduino跟Ardunio很类似,但是,在界面方面却做更加精美,对于一些使用者来说,可能更具吸引力。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
743浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
563浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 18:40 , Processed in 0.904789 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号