esp23 |
|
|
|
|
|
|
|
Пункты: 1090 |
Регистрация: 19.06.2013 |
|
|
|
Нашел кусок как общаться с i2c на си
:
#include <linux/i2c-dev.h>
#include <errno.h>
#define I2C_ADDR 0x20
int main (void) {
int value;
int fd;
fd = open("/dev/i2c-0", O_RDWR);
if (fd < 0) {
printf("Error opening file: %s\n", strerror(errno));
return 1;
}
if (ioctl(fd, I2C_SLAVE, I2C_ADDR) < 0) {
printf("ioctl error: %s\n", strerror(errno));
return 1;
}
for (value=0; value<=255; value++) {
if (write(fd, &value, 1) != 1) {
printf("Error writing file: %s\n", strerror(errno));
}
usleep(100000);
}
return 0;
}
Обьясните как проделать тоже на питоне!
как я понял там нельзя использовать fctnl.ioctl() а надо использовать модуль smbus:
import smbus
import time
bus = smbus.SMBus(0)
for a in range(0,256):
bus.write_byte(0x20,a)
time.sleep(0.1)
но его у меня нету что делать подскажите! |
|
|
|
|
|
sasamy |
|
|
|
|
|
|
|
Пункты: 83562 |
Регистрация: 14.08.2009 |
|
|
|
|
|
|
|
esp23 |
|
|
|
|
|
|
|
Пункты: 1090 |
Регистрация: 19.06.2013 |
|
|
|
у меня плата at91sam9260! что мне даст если я посталю готовый дистрибутив? и встанет ли он вообще т.к. оперы всего 64Мб?
А нельзя как нибудь по другому общаться с I2C открыть как фаил и писать потом туда и читать или может сделать модуль на си что бы с ним общаться? |
|
|
|
|
|
esp23 |
|
|
|
|
|
|
|
Пункты: 1090 |
Регистрация: 19.06.2013 |
|
|
|
и еще вопрос я не смогу поставит i2c-tools на совой дебиан а потом найти этот модуль smbus и кинуть его в целевую систему и пользоваться? |
|
|
|
|
|
|