第一篇《【新UFUN试用体验】兼具情怀与温度的学习板—开箱靓照》大致了解这板的基本情况( https://mbb.eet-china.com/blog/3894459-409545.html )。 这篇只是个尝试,真的惭愧,以前从未接触过STM32,而Arduino也是今年5月份开始学习的,基础差些,试试看,走哪算哪....... 众所周知,使用Arduino进行开发简单快捷,一个项目能很快的做好。以我自己的例子,小时候爱好过无线电,有点动手能力而已,但没有单片机的底子,编程语言基础也是零,只好选择 Arduino可视化的 图形编程来入门。几个月以来,从简单的干簧管模块开始,一边查资料学习,一边尝试做实验,同步发帖子(兼顾分享与交流)。上手一个新的传感器,先查相关资料了解基本情况,然后尝试做实验,不管程序是否能走通,都记录下来。分享的实验记录内容,主要是相关技术资料(网上搜集整理)+代码编程( Arduino )+图形编程(几种 平台 软件配合)+仿真编程(国产自主知识产权Linkboy),以务实解决问题为实验目标(走通能用)。说来好玩,这些做实验的传感器和执行器模块大部分见都没有见过,还有不少甚至没听说过(主要是在深圳电子市场上耐心淘来的)。因为没有把握,最早开贴 Arduino 系列实验目标——37种传感器与模块,后来升级为66种,再后来变成108种,至10月中旬止实际已经发帖135种实验了(成功率达95%以上),现在新的目标是168种(估计要推后到明年了)。所以说 Arduino能风靡全球,成为入门电子DIY的首选是有一定道理的,确实兼容性非常棒,开发环境良好。 Arduino的强大之处就在于它拥有完善的生态链,先前的贡献者 可能 已经写出了你需要的各种库文件。不论是读取温湿度传感器的数值还是利用液晶屏显示文字,亦或者仅仅是驱动舵机,你都能在网络上找到适用于Arduino的库函数。 下面就开始新的尝试与实验: 第一步:安装Arduino IDE arduino官网 https://www.arduino.cc ,下载Arduino IDE页面 https://www.arduino.cc/en/Main/Software 最新版本是1.8.10,兼容各大平台,有安装版和免安装版二种。 第二步: 下载安装Arduino SAM开发板 不安装这个开发板后编译会出现arm-none-eabi-g++错误 打开 Arduino——工具——开发板管理器 然后搜索——SAM开发板并下载安装 安装成功是这样的 第三步: 下载STM32F103RCT6用的Arduino开发板库 下载地址: https://github.com/rogerclarkmelbourne/Arduino_STM32 下载后解压,将文件夹Arduino_STM32_master重命名为Arduino_STM32后复制到C:\Users\用户名\Documents\Arduino\hardware文件夹,如果没有hardware文件夹就新建一个(由于这个压缩包体积偏大,我下载好多次都失败了,后来在21ic下载站上用2元兑换了一个,呵呵,要解决问题,链接:http://dl.21ic.com/download/code/arduino_stm32-210074.html)。这个 Arduino_STM32的库有40多M,包括文件: 有了这个库我们就可以让arduino IDE支持ufun学习板了。 由于是第三方的库,所以需要自己手动安装。 第四步: 打开Arduino IDE,选择工具——开发板——选择如下开发板 选择 STM32F103RCT6,256KB Flash + 48kB SRAM 第五步:安装UFUN2.0的串口驱动( 串口芯片 CH340 ), 打开Arduino IDE,要能识别板子 设置端口 第六步: 下载安装flash_loader_demo_v2.8.0 flash loader demo是一款 ST官方的flash下载软件, 用于STM32F103,STM32F407,STM32F446单片机的串口下载程序。 支持Windows 98SE, 2000, XP, Vista, 7, 8, 8.1, 10系统。 如何安装:首先删除之前版本,从开始-设置-控制面板中-添加或删除程序,移除之前的版本后,再运行安装程序。 目前版本是2.8.0,下载之后默认安装。 下载链接: https://www.st.com/en/development-tools/flasher-stm32.html 链接2: https://pan.baidu.com/s/1jpwH-NU8_Y31hPPDKDuVwA 提取码:2qkb 第七步: 更改ufun板子启动配置 STM32三种启动模式对应的存储介质均是芯片内置的,如下图: (1)用户闪存 : 芯片内置的Flash。正常的工作模式。 (2)SRAM: 芯片内置的RAM区,就是内存。可以用于调试。 (3)系统存储器: 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。启动的程序功能由厂家设置。 我们把ufun的BOOT0引脚拉高,进入系统存储器启动模式,这样就可以用ST的flash_loader进行程序的下载。 如上图所示把ufun最右边的两个引脚短接在一起,就是拉高了BOOT0引脚。 第八步:使用 flash_loader_demo_v2.8.0烧录bin文件 接上板子,打开软件,选择USB串口线的串口号(这里是COM5) 按开发板上重置键后按Next进入下一步(已能识别256K) 按Next进入下面界面,选择Download to device 第九步: 从Git上 ( https://github.com/rogerclarkmelbourne ) 下载大佬的项目文件 “STM32duino-bootloader-master” 如下页面中第二个文件,如果不导入安装这个库文件的话就无法编译生成STM32 对应的hex文件。 找到上图中圈着红线的BIN文件,下载到桌面,一会我们将用工具下载到ufun学习板中。 下载链接: https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries 解压后放入C:\Users\用户\Documents\Arduino\hardware\Arduino_STM32中,并烧录,成功见下图 第十步: 打开Arduino IDE,烧录 LED闪灯程序 先确认烧录UFUN2.0开发板的6个配置 烧录的Blink程序如下(把UFUN板子的boot引脚继续拉高,按一下复位按键,然后放开) void setup() { pinMode(PA1, OUTPUT); } void loop() { digitalWrite(PA1, HIGH); delay(1000); digitalWrite(PA1, LOW); delay(1000); } 烧录成功是这样的 忙乎一天,终于点亮板载蓝色LED