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再举例之按键实验 . 串 ...
随机推荐
- mvcmovie sample 在window10 下的部署问题(HTTP Error 500.19 - Internal Server Error)
mvcmovie sample 在window10 下的部署问题 使用VS2018配置好了mvcmovie sample,发布到IIS后,打开报错: HTTP Error 500.19 - Inter ...
- (详细)华为荣耀8X JSN-AL00的usb调试模式在哪里开启的教程
经常我们使用Pc链接安卓手机的时候,如果手机没有开启usb开发者调试模式,Pc则没办法成功识别我们的手机,有时候,我们使用的一些功能比较强的的工具比如之前我们使用的一个工具引号精灵,老版本就需要开启u ...
- Flex 布局的教程
前言:以前也经常用flex布局,但是最近看到别人使用的时候,发觉以前自己还是不够理解这个,重新看了一遍http://www.ruanyifeng.com/blog/2015/07/flex-gramm ...
- php curl请求页面数据
/** * * [curl_post post方式请求] * * @param [type] $url [description] * * @param string $data [descripti ...
- (Python基础)文件操作
对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 命名为7 years Once I was seven years old my momma t ...
- JDK源码中使用的设计模式
结构型模式: 适配器模式: 用来把一个接口转化成另一个接口. java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.Inpu ...
- 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践
2018-2019-2 20165205 网络攻防Exp3免杀原理与实践 一.实践内容 1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用 ...
- Open CDN 2.0管控端和节点端安装
原文:http://www.safecdn.cn/cdn/2018/12/opencdn-2-0/1076.html OpenCDN是一套快速部署CDN加速的工具,针对专门提供CDN加速服务的企业或对 ...
- leetcode1033
class Solution: def numMovesStones(self, a: int, b: int, c: int) -> 'List[int]': l = list() l.app ...
- 2018-2019-2 网络对抗技术 20165304 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165304 Exp4 恶意代码分析 原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或E ...