完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
一、任务要求
1)持续向串口输出“Hello world!”; 2)当接收到“stop!”时,停止输出。 二、Arduino的安装和配置 1、安装Ardunio 链接: 安装包.提取码:q251 注:安装的时候,一直默认安装就可以了,安装的路径不能有中文。2、配置Arduino 1、将安装包里的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware下。 2、打开Arduino,点击菜单栏工具开发板…第一栏的开发板管理器 3、选中Cortex-M3系列的编译支持文件并安装 注:安装时间比较长,请耐心等待。4、安装完成后,在菜单栏工具开发板选择芯片类型,由于我使用的是stm32f103指南者,所以选择为Generic STM32F103V series。 5、按照下列图片所示,修改。 三、程序 1、连接stm32的开发板 直接用u***线把开发板与电脑相连即可。然后用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,TXD与A10相连。 注:u***线连接的开发板的"u***转串口"这个接口。2、编辑代码 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); // 延迟 } } 3、烧录程序 1、选择连接的串口 2、依次点击验证,烧录 注:每一次在烧录文件之前,要按开发板上的RESET,否则可能会出现问题。3、打开串口监视器(此时小灯开始闪烁) 注:波特率记得改成115200。 4、运行结果 四、分析基于标准库函数与基于HAL库函数的stm32编程方式的差异 1、标准库是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。 2、HAL库是只要使用的是相通的外设,程序基本可以完全复制粘贴。注意是相通外设,意思也就是不能无中生有,例如F7比F3要多几个定时器,不能明明没有这个定时器却非要配置,但其实这种情况不多,绝大多数都可以直接复制粘贴。 注:也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。五、stduino IDE的使用体会 1、Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。 支持自定义编辑背景;代码高亮;代码自动提示补全;—键USBStlink下载;支持串口调试 2、stduino的操作界面简洁干净,操作便捷,程序编写简单,不需要太多的单片机基础和编程基础,自带程序烧录,自带串口调试。 六、总结 Ardunio极易掌握,同时有着足够的灵活性。不需要太多的单片机基础、编程基础,简单学习后,可以快速的进行开发,自带程序烧录,自带串口调试,软件界面简洁。就是在下载开发板配置的时候。比较慢,多耐心等一等。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2951 浏览 16 评论
3455 浏览 1 评论
8984 浏览 16 评论
4045 浏览 18 评论
1097浏览 3评论
567浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
564浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2299浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 00:19 , Processed in 1.104653 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号