【Arduino Nucleo072兼容包---抢先体验版】
, j$ E& G) W& d3 }1 d1 [有图有真相:
( d! p) C" Z# \" q. H. g: m
Nucleo072
. @+ `4 Z/ y" U% |5 c
安装步骤: ; D2 E3 G9 C: |4 i8 M# |3 U! W: c
- 在本帖的附件中下载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。这是我们兼容包的全部代码。1 W" U( t& R3 s" S7 C- I
8 r/ F* e2 u0 @, @' u. \) ^& @. I2 c
" l) t6 Y2 H a/ F- U
! h9 G4 J6 U+ X. W/ D+ I9 t7 O4 }' |2 p1 m0 e/ Z4 w
说明:
' G6 c& F3 B; g: w* D- 因为时间精力有限,目前实现的功能比较有限。如果有兴趣的话,你也可以添加其他的代码到兼容包中。我们一同来进行开发,让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更加通用。如果你使用过上一个版本,请按照这一个版本的改变重新安装。" @, T0 e3 r6 O- t8 m, v
9 v5 \/ {+ T" C2 u7 a
4 ]" f) G4 z5 }7 ?5 D
# L5 V; Q% Y @实现的函数:
3 ^3 R8 g; @" Y' L# y- digitalWrite
- digitalRead
- toggleDigital
- pinMode
- Serialx.xxx
- analogRead
- analogReadResolution
- delay: f0 Q: {* n1 q6 o/ t
8 J% Y$ J1 G$ K" q6 j/ @
3 U3 x: `/ I% Y- ]% |! N/ A: L' C8 C( h! \# f
0 e4 j3 |: z- H% z1 t+ u6 w+ |8 v7 f; m$ [% f2 R& C
) w; }7 O. T+ ?7 W p6 `) V; p# g U3 U1 _( {6 Z- D, w1 O
E! _) s8 F" t' g- x0 f4 {! F- H
5 q! V/ i9 O( d
+ N+ N+ l$ @4 e) L7 x
; B9 @5 L# B2 {- L
0 {% C# m0 f5 W1 v) d u a: A* q0 t/ `3 ?, t; m
1 S1 I- F6 C; _2 s3 A: O' \/ z
9 l# N8 ~$ ^! z g' B4 Q. X
|
看这个提示估计是找不到g++这个程序导致的。你的Arduino的安装目录在什么地方呢?
可以先下载代码看看啊,社区也有教程