|
【Arduino Nucleo072兼容包---抢先体验版】
! Z C0 P1 N" d0 p1 N. [9 _& t有图有真相:
: |( z% e. ^, V9 x1 a
Nucleo072
! w) Y! R4 P6 D
安装步骤: % t$ x+ l k, ~8 M2 l+ E
- 在本帖的附件中下载ST-LINK.rar。解压到D:\Program Files\Arduino\hardware\tools。这个文件夹内的文件其实就是复制的ST-LINK的,里面有一个ST-LINK_CLI,供我们通过命令行来下载程序。
- 通过百度网盘链接https://pan.baidu.com/s/1gdIPp8R 下载g++_arm_none_eabi_2014q3.rar,并放置在D:\Program Files\Arduino\hardware\tools(和ST-LINK)放置在同一个文件夹内。这是我们编译程序使用的ARM GCC。和Arduino原生的虽然是同是GCC,但是版本不同。
- 在附件中下载stm32f0xx.rar,解压到D:\Program Files\Arduino\hardware\arduino。这是我们兼容包的全部代码。
+ N" q" f6 y: L1 x& }+ x " W9 n7 g' H" ^$ p
+ l9 m2 a0 O4 z! P
% `% n7 Q2 Z$ @( e( B# l
1 R+ A' i7 E: a/ c* O3 A4 E& b) T说明:
( M+ F: |8 }" t! K6 {" f, z- 因为时间精力有限,目前实现的功能比较有限。如果有兴趣的话,你也可以添加其他的代码到兼容包中。我们一同来进行开发,让Nucleo系列更加完善。
- 芯片使用HSI作为时钟,主频为48M。
- ST Nucleo072共有4个USART,在Arduino中分别使用Serial,Serial2,Serial3,Serial4进行表示。为了与板子自带的USB 转串口兼容,Serial其实是USART2,Serial2是USART1,Serial3是USART3,Serial4是USART4。串口采用主动发送,中断接收的方式。中断接收的数据存放在ringBuffer中。是一种先入先出的队列结构。每一个Serial接收的数据存放在单独的ringBuffer中。
- 更多的软件细节请参考兼容包STM32F0XX/cores/Arduino中的代码。
- 兼容包STM32F0XX/system中存放的是CMSIS以及固件库。真正起作用的是头文件。源文件并不参与编译。修改system里面的源文件并不会起作用。
- 使用者可以将自己的代码添加至STM32F0XX/cores/Arduino文件夹,以及STM32F0XX/variants/Nucleo072中。这两个文件夹中的所有代码都能够参与编译。一般来说,建议,将Arduino相关的代码放置在Arduino文件夹。variants中仅仅放置每一个芯片读一无二的信息,例如启动文件,system_stm32f0xx.c,引脚信息文件。
- 在启动的时候,已经打开算了所有的GPIO的时钟。
- 在启动的时候,已经将systick配置成为1ms中断的工作方式。systick也正是delay函数工作的保证。
- 对函数有任何疑问,欢迎在下面留言讨论。
- 在之前也发过一个Nucleo072的兼容包。这一个包在之前的基础上,重新进行编写。主要是对编译工具,下载工具的重新命名,安装位置改变。也重新整理了部分编译的函数(platform.txt),是platform.txt更加通用。如果你使用过上一个版本,请按照这一个版本的改变重新安装。
% E1 y, f+ K6 w0 B2 j " M8 K& k' _: }9 w; R- w
% `9 {* n" X* q/ [* t$ C; Z
2 o) D, Y$ k# M. K a3 N- ]2 X8 X
实现的函数:# C$ m4 j1 g$ Z
- digitalWrite
- digitalRead
- toggleDigital
- pinMode
- Serialx.xxx
- analogRead
- analogReadResolution
- delay
5 Q$ G: B8 t" k7 a4 X; | 2 [/ M+ e9 h1 e4 @$ u Z( p5 L
3 C3 \, V0 d7 S1 L1 r
6 U4 K& x' r! g F, {: a x# H6 C1 {% c3 b) }! W- a5 b9 o2 _# B
1 j2 M, [7 Y6 x9 i9 L, E9 Y" j) k
0 ~3 P, Z! e' e$ b! r. u
" C) K$ @ i# A0 |+ A/ h6 t) L# l- ~8 [+ I, \. J( O6 w
# z- ~( b! l! K7 m. j2 C7 d& \: M) i6 H0 ~2 Y, x' H5 i, {
( g' ^( D/ `' I8 e0 _( P
1 R, _# F# y9 J- y3 v5 x
: D) L& W8 J7 j* Z r9 }$ M( h . a/ M$ F) ?) v( B, v
, Y |4 b/ h* W7 w+ T7 z. R
|
看这个提示估计是找不到g++这个程序导致的。你的Arduino的安装目录在什么地方呢?
可以先下载代码看看啊,社区也有教程