3

我正在尝试通过Arduino 1.0.5-r2上传此固件 sck_beta_v0_8_6。我选择了董事会。该设备是Smart Citizen Kit Urban Shield v.1.1。上传失败并显示以下错误消息:LilyPad Arduino USB

Found programmer: Id = "BÛR"; type = 
   Software Version = . ; Hardware Version = .
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?

我究竟做错了什么?

4

7 回答 7

5

有时,不同的 USB 电缆会有所不同。市场上的电缆质量参差不齐,有时,您会得到一个处于可接受的边缘的参差不齐的电缆。

Arduino lilypad 似乎特别容易受到这种影响。很高兴这有帮助。

于 2014-05-23T01:09:29.990 回答
3

在上传代码之前按下重置按钮,直到您听到“拔下”声音(在 Windows 中)。打开IDE再试一次

于 2014-12-22T15:24:24.217 回答
1

我尝试使用 Arduino 版本 1.0.6 从 Levovo 笔记本电脑将草图上传到 Arduino Leonardo 板时遇到相同的错误消息。设备管理器和 Arduino 都显示了连接在 COM3 上的板。Arduino 还给出了一条错误消息,表明 COM3 正在被另一个应用程序使用。我尝试更换 USB 电缆,但得到了相同的信息。有效的方法是将 USB 插座从联想的右上方后部更改为右下方的后部插座。它连接在 COM8 上,我可以上传草图。了解两个网点之间存在速度差异。现在我需要做的就是弄清楚为什么我无法将草图上传到装有 Windows 10 和最新 Arduino 版本的 HP 笔记本电脑上的同一个 Leonardo 板上。在 COM6 上连接,但在上传时挂断。(注意:还必须编辑一些适用于 1.0 版的 Arduino 库文件。

于 2016-01-21T12:34:21.200 回答
0

我有同样的错误,但后来我发现我选择了错误的 Arduino 类型,而不是 Nano 我选择了 Yun。

于 2017-04-04T15:03:43.363 回答
0

当我指向与 Leonardo 兼容的分线板的库存主固件的串行端口而不是引导加载程序期间提供的串行端口时,我得到了同样的错误,还有带有带有版本avrdude: error: buffered memory access not supported的程序员 id 的垃圾输出;看来后者是什么可以编程的?@.avrdudeavrdude

实际连接到引导加载程序时的正常初始输出将类似于:

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.

要进入引导加载程序,您可以

  • 按下复位按钮(如果您没有复位按钮,请将复位接地),或
  • 以 1200 bps 短暂连接到主固件的串行端口并断开连接

引导加载程序将提供与主固件的串行 USB 设备不同的串行 USB 设备,因此它可能会在您的操作系统中分配一个不同的串行端口号,通常是下一个可用的。例如,在 Windows 中,我与 Leonardo 兼容的主固件被分配了 COM3,而引导加载程序被分配了 COM4。

一个 python 脚本,由https://nicholaskell.wordpress.com/tag/leonardo/提供,用于执行此连续“敲门”:

reset.py

#!/usr/bin/env python
import serial, sys
serialPort = sys.argv[1]
ser = serial.Serial(
    port=serialPort,
    baudrate=1200,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)
ser.isOpen()
ser.close() # always close port

在 Windows 领域,我有一个用于在 virtualenv 中使用它的 cmd 脚本

reset.cmd

"C:\Program Files (x86)\Python37-32\Scripts\virtualenv.exe" pyreset_virtualenv
pyreset_virtualenv\Scripts\pip.exe install pyserial
pyreset_virtualenv\Scripts\python reset.py COM3
pause

调整以适合您的串口和 python 路径。

无论哪种方式,在连接引导加载程序后,您有几秒钟的短暂窗口avrdude可以连接到新的串行端口以开始编程,然后引导加载程序将再次进入主固件,此时您必须做再次重置。所以,一旦你弄清楚了引导加载程序的串口,你就需要提前准备好avrdude命令行来运行,这样你就可以在重置后立即启动它。

于 2020-01-20T22:22:22.903 回答
0

尝试将代码上传到 Arduino Micro(中文克隆)时,我遇到了同样的问题。在 Google 上花费数小时,刷新新的引导加载程序 - 仍然一无所获。物理重置和以边界速率 1200 打开 COM 端口不起作用。为什么?

我有 ATMEGA168 而不是 ATMEGA32u4!

谷歌告诉我们,Arduino Micro 得到了 Atmega32u4,但我的克隆得到了 Atmega168!首先,通过查找 Arduino 上的黑色焊接芯片来检查您的 atmega 类型。因此,我没有在“Board”菜单上选择“Arduino Micro”,而是选择了 Arduino Nano,一切正常!

于 2017-12-04T12:16:24.997 回答
0

虽然这个答案不是特定于 lilypad,但您需要重置板以从/向内存写入或读取。但是,如果您在终端中使用 avrdude,则必须发送特定的波特率(Leonardo 为 1200)然后关闭,等待 2 秒,然后打开端口。那时你可以读写你的Arduino。我使用python实现了这一点。沿着:

Import serial
Import time 
Import os

Seri=serial.Serial(yourConnectedPort, specificBaudRate)
Seria.close()
time.sleep(2)
Seri.open()
os.system(your avrdude command)
于 2021-08-25T17:33:20.527 回答