极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26405|回复: 14

搭建STM32的arduino尝试

[复制链接]
发表于 2013-3-14 13:04:08 | 显示全部楼层 |阅读模式
这个几天捣鼓着不用bootloader使用maple-ide编译好的程序
1:一片STM32F103RB最小系统板
2:一条usb转ttl下载线
工具软件:
Download and Install:
python-2.7.1
http://www.soliddigi.com/pub/SOLID_STM32/Tools/python-2.7.1.zip
pyserial-2.5.win32
http://www.soliddigi.com/pub/SOLID_STM32/Tools/pyserial-2.5.win32.exe
stm32loader.py
http://www.soliddigi.com/pub/SOLID_STM32/Tools/stm32loader.py

1:安装好python-2.7.1到c:\Python27目录
2:运行下pyserial-2.5.win32.exe
3:在C盘下建立spruce目录
4:将stm32loader.py 拷贝到spruce目录下
5:spruce目录下建立个BAT文件:C:\Python27\python.exe stm32loader1.py -p COM10(PL2303下载端口) -ewv HelloWorld.cpp.bin(或者其他的已经编译好的BIN文件)
6:word打开maple-ide-0.0.12-windowsxp32\hardware\leaflabs下的boards.txt
   编辑增加:
mapleJTAG.name=LeafLabs Maple Rev 3+ to JTAG
mapleJTAG.upload.file_type=bin
mapleJTAG.upload.maximum_size=20000
mapleJTAG.upload.ram.maximum_size=20000
mapleJTAG.upload.flash.maximum_size=128000
mapleJTAG.upload.usbID=1EAF:0003
mapleJTAG.upload.altID=1
mapleJTAG.upload.uploader=dfu-util
mapleJTAG.upload.auto_reset=true
mapleJTAG.build.board=maple
mapleJTAG.build.mcu=STM32F103RB
mapleJTAG.build.family=cortex-m3
mapleJTAG.build.f_cpu=72000000L
mapleJTAG.build.core=maple
mapleJTAG.build.submdl=stm32f103
mapleJTAG.build.vect= VECT_TAB_BASE
mapleJTAG.build.linker=maple/jtag.ld
mapleJTAG.build.using=armcompiler
mapleJTAG.build.density=STM32_MEDIUM_DENSITY
mapleJTAG.build.error_led_port=GPIOA
mapleJTAG.build.error_led_pin=5
##############################################################

打开maple-ide-0.0.12
打开HelloWorld示例

void setup() {

}

void loop() {
    SerialUSB.println("Hello World!");

需要将 SerialUSB.println替换成为 Serial1.println

void setup() {
  Serial1.begin(19200);
  
}

void loop() {
    Serial1.println("Hello World!");
     delay(1000);              
      
}

然后Ctrl+R
找到IDE提示目录的C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\build2329881976077313879.tmp\HelloWorld.cpp.bin(.tmp目录会变化)
拷贝HelloWorld.cpp.bin到c:\spruce目录下
设置最小系统板的BOOT0 1
RX1 TX1 接到PL2303

复位或者上电后稍等,运行BAT ,下载成功后,设置最小系统板的为BOOT0 1
复位或者上电后,程序在没bootloader情况下运行:)

回复

使用道具 举报

 楼主| 发表于 2013-3-15 07:17:29 | 显示全部楼层
搜了下淘宝上最便宜的核心板:)
LQFP64 封装STM32F103RBT6的核心板41元
LQFP144封装STM32F103ZET6的核心板68元
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2013-3-14 13:08:54 | 显示全部楼层
端口对应需要查看http://leaflabs.com/docs/hardware/maple.html#gpio-port-pin-map

当然如果你需要更加多端口,LQFP144封装的stm32f103zet6对应Maple Native
回复 支持 反对

使用道具 举报

发表于 2013-3-14 13:29:30 | 显示全部楼层
问楼主个问题,其他stm32的芯片能用吗?比如STM32F103RB?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-14 13:36:26 | 显示全部楼层
Maple对应STM32F103RBT6,
Maple Mini对应STM32F103RCBT6,
Maple Native对应STM32F103ZET6,
其他的STM32芯片 对应需要去http://forums.leaflabs.com/ 查阅或者提问
stm32 F4的好像也快出来了

回复 支持 反对

使用道具 举报

发表于 2013-3-14 13:46:44 | 显示全部楼层
型号太多了,有点搞不明白
还有一点,stm32没有直插的,不太容易diy
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-14 15:10:21 | 显示全部楼层
一般建议买现成的支持ISP下载的STM32最小系统板来捣鼓
回复 支持 反对

使用道具 举报

发表于 2013-3-14 15:18:25 | 显示全部楼层
LZ看我的帖子 我已经搞定了在stm32最小系统上上使用maple的dfu通过usb下载程序
并且可以使用SerialUSB

http://www.geek-workshop.com/thread-3355-1-1.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-14 15:49:32 | 显示全部楼层
histamine 发表于 2013-3-14 15:18
LZ看我的帖子 我已经搞定了在stm32最小系统上上使用maple的dfu通过usb下载程序
并且可以使用SerialUSB ...

嗯,你的贴子学习了:)
我只是不想用bootloader来做次尝试,maple的板子我有买,平常调试程序比较方便,如果程序OK后,单片机用去做控制其他东西,我想没有bootloader会可能方便点
回复 支持 反对

使用道具 举报

发表于 2013-3-14 20:55:39 | 显示全部楼层
一段时间没关注,没想到maple发展挺快。不过太贵了,国内怎么没人山寨啊。maple native换成人民币要400多块,同样的核心板才100多。
回复 支持 反对

使用道具 举报

发表于 2013-3-15 09:06:10 | 显示全部楼层
xmdesign 发表于 2013-3-15 07:17
搜了下淘宝上最便宜的核心板:)
LQFP64 封装STM32F103RBT6的核心板41元
LQFP144封装STM32F103ZET6的核心 ...

楼主的研究很好,国内stm32很火,maple很不火。
maple native是103ZET扩展了1M的SRAM。
淘宝上的103ZET核心板集成1M的SRAM+128M的Flash是140块。
回复 支持 反对

使用道具 举报

发表于 2013-3-15 11:46:39 | 显示全部楼层
哈哈,终于看到个python+STM32的
回复 支持 反对

使用道具 举报

发表于 2013-4-7 13:48:59 | 显示全部楼层
学习来了
回复 支持 反对

使用道具 举报

发表于 2013-4-20 22:50:46 | 显示全部楼层
Reading data from sketch_apr20a.cpp.bin
Bootloader version 0x22
Chip id '0x4 0x10'
Writing 12816 bytes to start address 0x8000000
Write 256 bytes at 0x8000000
Write 256 bytes at 0x8000100
Write 256 bytes at 0x8000200
Traceback (most recent call last):
  File "stm32loader.py", line 484, in <module>
    cmd.writeMemory(conf['address'], data)
  File "stm32loader.py", line 311, in writeMemory
    self.cmdWriteMemory(addr, data[offsffs+256])
  File "stm32loader.py", line 203, in cmdWriteMemory
    self._wait_for_ask("0x31 programming failed")
  File "stm32loader.py", line 79, in _wait_for_ask
    raise CmdException("Chip replied with a NACK during %s" % info)
__main__.CmdException: Chip replied with a NACK during 0x31 programming failed

用这个办法出这个错是什么原因?
回复 支持 反对

使用道具 举报

发表于 2013-4-20 22:59:49 | 显示全部楼层
请教原因
  1. Reading data from sketch_apr20a.cpp.bin
  2. Bootloader version 0x22
  3. Chip id '0x4 0x10'
  4. Writing 12816 bytes to start address 0x8000000
  5. Write 256 bytes at 0x8000000
  6. Write 256 bytes at 0x8000100
  7. Write 256 bytes at 0x8000200
  8. Traceback (most recent call last):
  9.   File "stm32loader.py", line 484, in <module>
  10.     cmd.writeMemory(conf['address'], data)
  11.   File "stm32loader.py", line 311, in writeMemory
  12.     self.cmdWriteMemory(addr, data[offs:offs+256])
  13.   File "stm32loader.py", line 203, in cmdWriteMemory
  14.     self._wait_for_ask("0x31 programming failed")
  15.   File "stm32loader.py", line 79, in _wait_for_ask
  16.     raise CmdException("Chip replied with a NACK during %s" % info)
  17. __main__.CmdException: Chip replied with a NACK during 0x31 programming failed
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-15 00:08 , Processed in 0.047642 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表