|
【Arduino Nucleo072兼容包---抢先体验版】
. K7 v: I% ~" o" \! `9 n( [/ C有图有真相: D* p. z7 {% o6 X
Nucleo072
* h/ S- s+ ?7 }" K; S
安装步骤: & s# A# r$ I0 W* s1 m
- 在本帖的附件中下载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。这是我们兼容包的全部代码。
8 ?: h/ a$ f; M' |* t/ e1 f N1 ?4 T" ?. F6 u1 S
& M) M( j1 _) j
- }. P, Q% q' S' R, x8 o+ h( M! u
5 E0 j, k$ a" C8 \, P说明:
6 T9 `/ S# G4 A+ K8 w4 A. l% @. B4 j- 因为时间精力有限,目前实现的功能比较有限。如果有兴趣的话,你也可以添加其他的代码到兼容包中。我们一同来进行开发,让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更加通用。如果你使用过上一个版本,请按照这一个版本的改变重新安装。
/ q+ e/ k6 V6 ? y# _7 R7 R 6 y8 S2 j& Z! L8 ^( B
# Y1 H# E4 {$ }7 U7 Z, N6 ~9 Y) Z ~1 s0 c% I& _
实现的函数:
( I/ C' i+ u. E5 r9 l0 d" G9 x- digitalWrite
- digitalRead
- toggleDigital
- pinMode
- Serialx.xxx
- analogRead
- analogReadResolution
- delay
% i" g5 r* n$ m7 I ^ 2 g! q s3 s; [
3 i J# f- h$ L. F1 g: O i3 S) Y9 {
) A9 Z2 M6 H) f" @
% X- g/ M( R/ L2 H! g5 O
* g' ~; `8 V3 C$ c# n9 X
( o' G/ u! F+ ?9 Q$ H: _( W: _
# a2 B T5 i. }6 Y8 G2 v+ R3 [1 u* Y8 g. W+ ~6 a8 t
/ p8 _( Q0 } x7 e3 K
+ [0 [+ g u# v+ X7 f5 D7 X' M" x
8 _& n* }2 k) x: m9 s7 \0 B, Y
1 Z/ o0 w- |& q7 d
0 n, `0 k6 P+ ]4 N, Y
/ ?2 ]+ {/ p0 Y, o6 W/ G
|
看这个提示估计是找不到g++这个程序导致的。你的Arduino的安装目录在什么地方呢?
可以先下载代码看看啊,社区也有教程