Я пытаюсь использовать светодиодную матрицу max7219 8x8 с использованием шины SPI.
Я выполнил следующую настройку GPIO на плате Galileo.
Цифровой вывод Функция Linux Level shiftter Mux pins L: Dir_out H: dir_in
IO11 SPI MOSI spidev1.0 gpio24 gpio44 (H) gpio72 (L) IO12 gpio для Slave Sel gpio15 gpio42 -
IO13 SPI SCK spidev1.0 gpio30 gpio46 (H)
Я устанавливаю вышеуказанный gpio следующим образом - устанавливая контакты мультиплексора по желанию. -экспорт gpio24, gpio 42, gpio30, gpio15 и установка поля направления как «OUT» и поля значения как «0», -установка gpio15 (значение выбора ведомого устройства) на «0».
Я использую следующий код для доступа к светодиодной матрице и установки шаблона:
int fd;
uint8_t array1[2];
uint8_t array [] = {
0x0F, 0x00,
0x0C, 0x01,
0x09, 0x00,
0x0A, 0x01,
0x0B, 0x07,
0x01, 0x06,
0x02, 0x06, };
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
static uint8_t mode;
static uint8_t bits = 8;
static uint32_t speed = 50000;
static uint16_t delay;
fd= open(DEVICE,O_RDWR);
struct spi_ioc_transfer tr =
{
.tx_buf = (unsigned long)array1,
.rx_buf = 0,
.len = ARRAY_SIZE(array1),
.speed_hz = speed,
.bits_per_word = bits,
.cs_change = 1,
};
array1[0] = array [i];
array1[1] = array [i+1];
ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
if(ret<0)
{
printf("ioctl Failed\n");
}
usleep(500000);
close (fd);
i
объявлена и инициализирована для присвоенияarray1[0] = array [i];
? - person J. Piquard   schedule 05.11.2016