完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、Ardunio的简单介绍
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。 它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了[百度百科]。 对于我们学习嵌入式来说,经常使用的软件就是MDK和IAR。但Ardunio这一款软件也有自己的特点,简单、方便,并且通过一名国外大佬写的配置文件,让Ardunio同样可支持STM32。 今天将尝试一下用Ardunio来完成STM32的串口通信。 二、Ardunio的安装与配置 1️⃣ 可以在Ardunio官网上下载 ,之后的安装可以参考网址,安装完成后如下所示: 2️⃣ 下载STM32_ardunio(在大佬的GIT上下载) 3️⃣ 下载完成后,将Arduino_STM32拷贝在你安装Ardunio的hardware目录下 4️⃣ 打开Ardunio后在工具-板子-STM32F1因为我的是正点原子F103Z所以选择这个系列的板子 5️⃣ 在菜单->工具->开发板->开发管理器搜索ARM 安装 已经装好了: ✍️ 安装你可能会遇到下半天下不下来的情况! 这时你可以试试 1、手动安装(如下,把路径拷贝压缩包过去) 2、换个网试试 6️⃣ 这里下载速度较慢,可以提供另一种方法 直接下载board,然后拷贝至如下目录(C:UsersThinkpadAppDataLocalArduino15stagingpackages)下 之后跳过下载部分即可。 7️⃣ 下载串口烧录软件 8️⃣ 插入串口,打开烧录软件,选择串口 9️⃣ 选择适合板子的频率和与板子对应的引脚(因为我的板子对应是pe5连接LED故调试用pe5) 这里按下复位键就可以看到小灯的现象了。 三、编写测试程序 需要注意的是,编译前一定要配置好,这里我选择端口为COM13,ZE芯片,串口烧入(serials) void setup() { //initialize digital pin LED_BUILTIN as an output. pinMode(PE5, OUTPUT); pinMode(PB5, OUTPUT); Serial.begin(115200); } // the loop function runs over and overagain forever void loop() { digitalWrite(PE5, HIGH); //turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(PE5, LOW); //turn the LED off by making the voltage LOW delay(1000); // wait for a second digitalWrite(PB5, HIGH); //turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(PB5, LOW); //turn the LED off by making the voltage LOW delay(1000); // wait for a second Serial.println("Hello Mr lee!"); delay(100); // wait for a second } 注意,上传时一定要按下复位键 波特率这时设置为115200 准备让LED进行翻转,对应端口为PE5、PB5 并且向串口发Hello lee 进行编译 注意,左上角对号为编译,后面的箭头是表示上传,对应MDK里的下载 然后进行上传(要按复位键,如果不按就会出现以下报错) stm32flash 0.4 Failed to init device. http://stm32flash.googlecode.com/ Using Parser : Raw BINARY Interface serial_w32: 230400 8E1 可以看到如下所示(打开串口监视器): 实物如下 四、完成实验任务 实现的功能: ⭐️ 持续向串口发 Hello Mr lee ⭐️ 输入stop停止发送 同原来的思路仍然是设计标记变量 String inputS = "";//定义inputs String Stopflag = "stopn"; int flag = 1;//设立标志位 void setup() { pinMode(PE5, OUTPUT); Serial.begin(115200);//设置波特率为115200 } void loop() { digitalWrite(PE5, HIGH); //LED灭 delay(1000); // 延时 digitalWrite(PE5, LOW); //LED灭 delay(1000); // 延时,标识系统正在运行 while (Serial.available())//Serial.available()这个函数用于输入信号进入缓冲 { inputS= Serial.readString(); //直接读取字符串 delay(2);//这里延时是为了字符串完整读入 } if (Stopflag.equals(inputS)) //停止标志位于输入信号一致,便停止发送数据 { flag = 0;//标志位置0 Serial.println("现在停止发送"); inputS=""; } inputS=""; //inputS置空 if (flag) { Serial.println("Hello Mr lee!"); delay(100); } } 实现效果 五、总结 这次用Ardunio做STM32还是走了很多弯路的,大家在做的时候一个是如果在线安装比较慢的话可以尝试手动和换网;再者就是配置STM32的那些参数一定要弄好。但是Ardunio还是十分方便的,赶紧入手吧。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:41 , Processed in 0.772534 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号