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

成功移植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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版