Kirill Lubinets

STM32f303vc вывод на блок семисегментного дисплея

3 сообщения в этой теме

Необходимо выводить на блок из 4 семисегментных индикаторов данные, управление лежит на двух сдвиговых регистрах:
Первый хранит в себе число на вывод, второй адрес(адресует на конкретный разряд в блоке).

 

Данные передаю через аппаратный SPI, настроенный в STM32CubeMX, но он у меня не работает.

Мой алгоритм

Задаю наборы для отображения на индикаторе и адресные наборы для перемещения по разрядам в блоке.

 uint8_t i,j = 0;
  uint8_t buff[8] = {1,2,3,4,5,6,7,8};
  uint8_t digit[10] = { 
      0xC0, // 0
      0xF9, // 1
      0xA4, // 2
      0xB0, // 3
      0x99, // 4
      0x92, // 5
      0x82, // 6
      0xF8, // 7
      0x80, // 8
      0x90, // 9 
  };
  uint8_t chr[4] = { 
      0x8,  
      0x4,  
      0x2,  
      0x1  
  };

Строб необходим для начала записи данных в регистр хранения сдвигового регистра

void strob(void){
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(85);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET);
HAL_Delay(85);
}

Функция передачи данных с использованием HAL функции и строба.
void spi_send(uint8_t *data, uint8_t it){
  strob();
 uint8_t *d = data;
  for(j = 0; j <=it; j++){
    d = &data[j];
  HAL_SPI_Transmit ( &hspi1, d, 8, 50); 
  }
  strob();
}

Отправляю смешение по элементам блока семисегментного индикатора.

  while (1)
  { i++;
    if(i<=4){
spi_send(chr, i);
  } else i = 4;
  i = -1;
  

s.7z

Файлы с IAR проектом и CubeMX проектом инициализации.

1dsfs.7z

Пример работы индикатора

video_2018-07-04_00-13-42.mp4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    273

Похоже, да. :)

Без указания модели индикатора, без схемы подключения и с неработающим аппаратным SPI вряд ли кто будет в вашем коде разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Роман Туркин
      Уважаемые товарищи, ранее на форуме была подобная тема и решением вопроса был совет: использовать биполярный транзистор.
      Так же была указана схема подключения нагрузки.
      Ссылка на тему
      Прошу помочь с разводкой. Я примерно прикинул как это будет выглядеть, но я могу быть не прав, так как в схемотехнике почти полный 0.
      P.S. товарищи заранее спасибо! И это должно вклеиться в схему usb удлиннителя.

    • Автор: Krokodil007
      Продам новые, с хранения, индикаторы тока типа М4284 200мкА
      в наличии около 500шт.
      цена 50 руб/шт.
      Саратовская обл.
      Возможна отправка почтой.
       


    • Автор: Krokodil007
      Продам микроамперметры М4248, 50-0-50 мкА
      Новые, с хранения, в упаковках.
      10шт. по 200р.
      Саратовская обл.
      Возможна отправка почтой.
       




    • Автор: Krokodil007
      Продам индикаторы стрелочные типа М68501.
      Новые, с хранения.
      Цена 200 руб/шт.
      В наличии 24шт.
      Саратовская обл.
      Возможна отправка товара почтой или транспортной компанией.



    • Автор: Krokodil007
      Продам индикаторы ИВ-28Б.
      Новые, в упаковках. 
      В наличии 648 штук.
      Цена 15 руб/шт.
      Саратовская обл.
      Возможна отправка почтой или транспортной компанией.