你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

成功移植STM32 Nucleo到Arduino  

[复制链接]
QianFan 发布时间:2015-1-13 13:35
本帖最后由 QianFan 于 2015-1-16 21:56 编辑

今天成功的移植了F072 Nucleo到Arduino,特发帖嘚瑟一下。请看大图:

目前的功能还是很简单,只是简单的实现了Arduino控制IO接口的函数。实现了下面的几条函数digitalWrite,digitalRead,pinMode,另外,为了方便大家使用,我在Arduino的基础上增加了一个函数toggleDigital,用于翻转IO接口。


程序在开始的时候使能了systick,配置成为1ms中断一次。这样,我们就能够使用delay就行延时了。


代码使用arm gcc进行编译。在整个移植的过程中,最重要的就是Arduino中platforms.txt文件的编写。这个文件的作用最大了,类似于gcc中的makefile。这个文件关系到函数是如何编译的,生成什么样的文件(hex or bin)使用什么下载工具,下载工具的命令行是什么。由于Nucleo板子上面自带ST-LINK,所以当然是使用ST-LINK下载。但是似乎是现在移植的一个难题,因为Arduino在进行下载的时候,是需要确定你的串口是存在的。似乎所有的Arduino都是使用串口进行下载。所以,如果没有串口的话,是无法下载的。幸好我们的Nucleo板子上是有一个串口的,用这个串口可以临时的欺骗一下Arduino,但也不是长久之计。我们正在寻找一个解决方案。看能不能很好的解决这一个下载问题。


不知道大家对Arduino的感觉如何,前几天我发起了一个帖子,询问大家对Arduino的看法,感觉大家还是对这个东西不是很感兴趣。
好了,不多少了,大家还是看图说话吧。过几天之后,完善一下代码,作为一个附件上传上来供大家评测。如果大家感兴趣的话,会写一系列的教程贴,供大家从0开始移植Arduino。

digital

digital



                                                              [Arduino移植第二幕:成功移植Serial ]
Nucleo中有四个串口,所以这次移植Serial的时候,将这四个串口都写进去了,分别是Serial,Serial2,Serial3,Serial4,直接发送,中断接收。测试之后,四个串口均可用。比较欣喜的是Nucleo自带了USB转串口,很方便我们使用。
下面是4个串口的引脚:
PA0<-->USART4_TX       PA1<-->USART4_RX
PA2<-->USART2_TX       PA3<-->USART2_RX
PA9<-->USART1_TX       PA10<->USART1_RX
PC10<->USART3_TX       PC11<->USART3_RX


下面是截图:


Serial。

Serial。



                                                      【Arduino移植第三幕:成功移植AD转换部分】
今晚成功移植analogRead这个函数,能够通过内置的AD读取端口的电平值。不过操作流程和arduino原生的有点出入。如果使用Arduino原生的,貌似是不需要设置IO端口的状态。但是我移植的需要提前将IO端口设置成为ANALOG状态。

在移植的时候也好好地想过这个事情。其实移植的时候完全可以根据Arduino的操作流程来处理。只要在每次analogRead的时候都设置一次IO接口的状态为模拟就行,但是这样毕竟做了很多无用功。特别是当你在一个循环中连续读取模拟口的电平值的时候,每次都设置一个确实是一种浪费。因此我没有这样做。只是在程序开始的地方,我的建议是在setup中设置你需要读取的引脚是ANALOG(使用pinMode函数,在Arduino原生的基础上增加了ANALOG这一状态)。

下面是我的一张截图。将AD转换通道的数据读入,并且通过串口Serial进行发送。串口监视器中的数据一开始是接在3.3V上面,然后我把线拔下来,悬空了一会,然后把线放到了GND上数据的变化。请看图。

analogRead

analogRead


收藏 3 评论39 发布时间:2015-1-13 13:35

举报

39个回答
QianFan 回答时间:2015-1-13 13:38:18
@沐紫 姐,您怎么看?
shaoziyang 回答时间:2015-1-13 13:44:55
这个不错。MSP430 launchpad也有一个类似Arduino的东西:energia。
QianFan 回答时间:2015-1-13 17:25:27
shaoziyang 发表于 2015-1-13 13:44
这个不错。MSP430 launchpad也有一个类似Arduino的东西:energia。

这个是直接使用Arduino的IDE
shaoziyang 回答时间:2015-1-13 21:11:43
QianFan 发表于 2015-1-13 17:25
这个是直接使用Arduino的IDE

支持楼主,等待可用的版本。
slotg 回答时间:2015-1-13 22:39:25
关注楼主的发展,我觉得Arduino是一个很伟大的开源板子,让很多人透过简易的编程方式实现自己的想法。
mlxy123xy 回答时间:2015-1-14 00:18:34
其实用什么实现不是最重要的,最重要的是有想法,然后用最简单的方式实现了。
QianFan 回答时间:2015-1-14 11:13:29
shaoziyang 发表于 2015-1-13 21:11
支持楼主,等待可用的版本。

正在努力敲程序中。。。
QianFan 回答时间:2015-1-14 11:13:59
slotg 发表于 2015-1-13 22:39
关注楼主的发展,我觉得Arduino是一个很伟大的开源板子,让很多人透过简易的编程方式实现自己的想法。 ...

主要是他能降低开发的门槛。让更多的人学会使用
晓枫VS枯叶 回答时间:2015-1-14 12:26:01
楼主可以发个移植教程!
1234下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版