c - 使用树莓派将 .hex 文件从 ArduinoIDe 上传到 attiny85

标签 c arduino raspberry-pi hex avr

我,我正在编写一个 attiny85 程序。首先,我用我的树莓派做了这个,可以制作一个程序来打开/关闭连接到我的 attiny85 的 LED。但是网上只有一个 fex 教程来使用树莓派进行编程,但是有很多使用 Arduino 的教程。所以我决定使用arduino ide,然后获取.hex文件并用我的树莓派将其上传到attiny上。 (我没有arduino板)。此外,arduino ide 还有许多库可以让您的生活变得简单。但是当我上传它时一切正常,但程序似乎不起作用。我真的不知道是否可以使用 arduino 创建 .hex 文件并使用 Raspberry pi 推送。 PS:抱歉英语不是我的母语 这是我用树莓派制作的第一个程序,它的工作原理是:

#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
 {

    PORTB = 0xFF;   // LED's are off

  for (;;) {

     DDRB = 1<<DDB4 | 1<<DDB1 | 1<<DDB0 | 1<<DDB3;
    //PORTB ^= 0xFF;   // invert all the pins
     _delay_ms(1000); // wait some time
     DDRB = 0<<DDB4 | 0<<DDB1 | 0<<DDB0 | 0<<DDB3;
     _delay_ms(1000); // wait some time

   }
   return 0;
}

然后是我用arduino制作的程序(我知道它只应该打开2个LED,但没有一个打开):

void setup() {

 pinMode(1, OUTPUT);
 pinMode(2, OUTPUT);

}


void loop() {
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH);
  delay(1000);              // wait for a second
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);  // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

为了插入它,我使用这个命令(对于两个程序,但对于第一个程序,我首先编译它以生成.hex):

sudo gpio -g mode 22 out
sudo gpio -g write 22 0
sudo /usr/local/bin/avrdude -p t85 -P /dev/spidev0.0 -c linuxspi -b 10000 -U flash:w:blinky.hex

那么这正常吗?这是代码问题还是我无法执行我尝试的操作? 我真的想使用 arduino IDE,因为我希望我的 attiny/rasbperry 通过串行 gpio 进行通信

最佳答案

也许您应该了解一下如何使用 arduino 库并将其添加到您的项目中。然后当您使用 avr gcc 编译器时,添加该库。但奇怪的是,你的第二个代码在 attiny 上不起作用。您是否检查过 .hex 文件包含十六进制代码? :)

关于c - 使用树莓派将 .hex 文件从 ArduinoIDe 上传到 attiny85,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292164/

相关文章:

android 无法以编程方式连接到 wifi 网络(几秒钟后掉线并返回到上一个)

html - 使用 AT 命令执行 POST 时如何自定义 HTML header ?

c - 如果不处理 printf 会发生什么

c++ - 接近零的浮点值会导致被零除的错误吗?

mysql - 使用 Arduino IDE 借助变量从节点 MCU 发送数据

git - YOCTO: "error: cannot run ssh: No such file or directory"

docker - 发布 RaspberryPi 3b+ 和 docker compose : Installing build dependencies: finished with status 'error'

C 编程检查缓冲区中的消息

python - 在 2 种语言之间交换数据

linux - 在哪些用例中我需要 WSL