stm32-arduino-f103
希望给工作中偶尔要用的一些辅助板卡(例如运行信息现场记录)找一个快速开发的手段,Arduino作为流行的开源嵌入硬件框架,组件丰富,资料众多,所以想以Arduino作为平台。但是Arduino板子基本上基于AVR,但是目前日常工作以ARM为主,而且手头也有不少STM32F103的开发板,所以想看一下在一些开发板上跑Arduino的可能性,经过搜索,找到以下两个方案(这是搭建过程记录,比较没有条理):
Arduino_STM32
Arduino_STM32下载以后,直接放到目录<arduino_dir>\hardware下(例如“C:\arduino\hardware\Arduino_STM32”)。重启以后,在板卡列表里面,就可以看到新增加的板卡类型了。
BootLoader,用JLink烧写,STM32duino-bootloader\binaries\generic_boot20_pc13.bin直接烧写就可以,在手头的STM32F103板子上,PC13上加一个LED,跳线J5跳到2-3上(即把USB口配成generic_f103板),驱动需要运行 Arduino_STM32\drivers\win下的install_drivers.bat来安装,具体原因见:Maple drivers。简单地说,就是用“wdi-simple”来生成Windows需要的签名驱动程序。
更新程序需要连接串口,然后手动复位板卡到Bootloader,然后下载。
板卡如何下载程序可以参考Uploading_a_sketch,目前的结果Boot下的USB下载可以工作,但是串口不行。解决方法是选“STM32duino bootloader”下载,然后在下载的时候,看到信息提示按复位,进入Bootloader,用USB下载。
下载时候出现错误提示:“error resetting after download: usb_reset: could not reset device, win error: The system cannot find the file specified.”,可以直接忽略,见STM32 Bootloader on Win7 64bit
stm32duino
主要参考Getting Started,这应该是偏向于官方的支持,比较正规有条理。
IDE的菜单“File->Perference”,在对话框的“Additional Boards Managers URLs”里,填写“https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json”,然后在菜单“Tools->Board: xxxxxx->Board Manager …”,在对话框中,选择“STM32 Cores”安装。
增加类似的板卡变种:Add a new variant (board)
由于手头最类似的板子是Nucleo F072RB,故需要在“Nucleo F091RC”基础上做一些修改,增加“Nucleo F072RB”板:“%LOCALAPPDATA%\Arduino15\packages\STM32\hardware\stm32\1.5.0\variants”下,复制“NUCLEO_F091RC”为“NUCLEO_F072RB”,更改“ldscript.ld”里面的芯片存储器定义,去掉“PeripheralPins.c”里面的“I2C1”和“USART5~USART8”相关的定义,运行LED和串口测试程序:
const int pin = 13;
void setup() {
// put your setup code here, to run once:
pinMode(pin, OUTPUT);
Serial.begin(115200);
}
int n = 0;
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(1000);
Serial.print("n=");
Serial.println(n++);
}
运行正常,LD2闪烁,虚拟串口可以收到打印的信息,OK。
stm32-arduino-f103的更多相关文章
- Arduino库和STM32的寄存器、标准库、HAL库、LL库开发比较之GPIO
标题: Arduino库和STM32的寄存器.标准库.HAL库.LL库开发比较之GPIO 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#Arduino,#STM32,#库,#开发 ...
- 基于Arduino、STM32进行红外遥控信号接收
catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...
- STM32作为主设备,Arduino作为从设备进行IIC通讯的注意要点
近日公司的项目重心要往米思齐的Arduino图形化编程上转移了,需要我将STM32和Arduino的IIC通讯调通.之前Arduino并没怎么使用过,仅仅是将超声波的代码移植成TOF激光测距而已.网上 ...
- 移植freertos到stm32 f103 的基本流程和总结
为什么要在stm32 f103上面移植freertos stm32 f103 以他的全面的文档,亲民的价格,强大的功能.成为无数微设备的方案首选.在市场上有极大的使用量.市场占有率也是非常的高.f ...
- STM32 学习笔记之中断应用概览--以f103为例
异常类型 F103 在内核水平上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断.其中系统异常有8 个(如果把Reset 和HardFault 也算上的话就是10 个),外部中断有60个.除 ...
- 关于在Arduino下STM32编程——RTC函数解析
注意:相关RTC基础知识这里不提! 该库头文件引用: #include <RTClock.h> 该库所在Arduino位置: 初始化RTC相关时钟 Arduino版的库里初始化配置PW ...
- STM32 F103 F407 F429 F767对比图
- STM32学习笔记——序言
写AVR已经两年了.如果初中时候玩Arduino也算的话,就是6年. 两年以来,我用AVR单片机完成了两个大项目: AVR单片机教程,一时兴起写的,效果不好: MEDS,参赛用的课题,半完成,比赛都结 ...
- 搭建基于 STM32 和 rt-thread 的开发平台
我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...
- STM32库函数编程、Keli/MDK、stm32f103zet6
catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串 ...
随机推荐
- Class.forName的作用?为什么要用?
答:按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载过,则返回代表该字节码的Class实例对象,否则,按类加载器的委托机制去搜索和加载该类,如果所有的类加载器都无法加载到该 ...
- 【学习】Python进行数据提取的方法总结【转载】
链接:http://www.jb51.net/article/90946.htm 数据提取是分析师日常工作中经常遇到的需求.如某个用户的贷款金额,某个月或季度的利息总收入,某个特定时间段的贷款金额和笔 ...
- 列表推导式和sum的用法
作者:杨航锋链接:https://www.zhihu.com/question/57470958/answer/153405326来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 关于c# Debug和Release的区别 (转)
关于Debug和Release的区别之讨论本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release ...
- 深度学习原理与框架- tf.nn.conv2d_transpose(反卷积操作) tf.nn.conv2d_transpose(进行反卷积操作) 对于stride的理解存在问题?
反卷积操作: 首先对需要进行维度扩张的feature_map 进行补零操作,然后使用3*3的卷积核,进行卷积操作,使得其维度进行扩张,图中可以看出,2*2的feature经过卷积变成了4*4. ...
- MyBatis 配制文件层次表
- JAVA的第二次作业
1.编写“人”类及其测试类.1.1 “人”类: 类名:Person 属性:姓名.性别.年龄.身份证号码 方法:在控制台输出各个信息1.2 测试类 类名:TestPerson 方法:main ...
- Delphi调用C#编写的WebService 注意事项
返回的字段值区分大小写,c#和Delphi的字段要一致
- Iview Modal 点击确定就关闭,我想禁止关闭该怎么办呢?
网上各种loading,不推荐.用下面的方法直接就解决了 <div slot="footer"> <Button type="text" si ...
- Django+xadmin的安装与配置
已安装python3.6.5rcl 已安装django-1.10.8(后续有错) 一.安装xadmin 1.下载xadmin,下载地址:https://github.com/sshwsfc/xadmi ...