使用 C 来控制 Raspberry Pi GPIO 与 74HC595
Using C to control Raspberry Pi GPIO with a 74HC595
我正在尝试在我的 Raspberry Pi 项目中使用我通过 Arduino 套件获得的 74HC595 移位寄存器;然而,Arduino 套件随附的代码并未明确说明如何完成此操作,因为许多调用的函数在 ArduinoIDE 之外的 C 语言中不存在。提供的代码是这样的:
//www.elegoo.com
//2016.12.9
int tDelay = 100;
int latchPin = 11; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
leds = 0;
updateShiftRegister();
delay(tDelay);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}
Arduino 似乎有以下库,而 C 本身没有:
- 数字写入
- 引脚模式
- 移出
- LSBFIRST
有没有办法将为 Arduino 设计的库合并到 C 包中?我是否必须编写自己的库才能使设备正常工作?
Arduino 和 C 不共享相同的库。 Arduino 库保存在 your_sketchbook_folder/libraries 下,而 C 头文件在其他地方。这些也不兼容,因为您不能简单地将文件夹从一个文件夹复制并粘贴到另一个文件夹。每个依赖项都有自己的依赖项,以这种方式移动文件夹会导致更多错误。
我正在尝试在我的 Raspberry Pi 项目中使用我通过 Arduino 套件获得的 74HC595 移位寄存器;然而,Arduino 套件随附的代码并未明确说明如何完成此操作,因为许多调用的函数在 ArduinoIDE 之外的 C 语言中不存在。提供的代码是这样的:
//www.elegoo.com
//2016.12.9
int tDelay = 100;
int latchPin = 11; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
leds = 0;
updateShiftRegister();
delay(tDelay);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}
Arduino 似乎有以下库,而 C 本身没有:
- 数字写入
- 引脚模式
- 移出
- LSBFIRST
有没有办法将为 Arduino 设计的库合并到 C 包中?我是否必须编写自己的库才能使设备正常工作?
Arduino 和 C 不共享相同的库。 Arduino 库保存在 your_sketchbook_folder/libraries 下,而 C 头文件在其他地方。这些也不兼容,因为您不能简单地将文件夹从一个文件夹复制并粘贴到另一个文件夹。每个依赖项都有自己的依赖项,以这种方式移动文件夹会导致更多错误。