Top.Mail.Ru
Уведомления
Очистить все

[Закреплено] STM32 для начинающих

Страница 15 / 18
Aveal
(@aveal)
Top level Admin

Пример нашел - ссылка. Здесь в функции BUTTON_Process() антидребезг сделан по такому принципу, без блокирующих задержек.

ОтветитьЦитата
Создатель темы Размещено : 26.09.2023 10:13
 stm
(@stm)
Level 4

Я ещё два варианта нашёл:
Первый вариант.
Можно вне цикла while по таймеру определять время работы цикла for.
Здесь я выставил просто число в цикле for для демонстрации.

for(int count=0;count<6000;count++)
{
    MX_USB_HOST_Process();
}

Надо чтоб этого времени хватало для того, чтоб код в файле usb_host.c выполнился.

Второй вариант это писать всё что нужно в файле usb_host.c.
В файле usb_host.c написание HAL_Delay(1000); не вредит инициализации USB.

ОтветитьЦитата
Размещено : 27.09.2023 05:42
 stm
(@stm)
Level 4
Кстати в цикле while тоже получается.
while (1)
{
    for(int count=0;count<6000000;count++)
    {
        MX_USB_HOST_Process();
    }
    printf("HELLO\n");
    HAL_Delay(1000);
}
Только я заметил, что надо самой первой строкой for писать в цикле while, иначе проблемы могут быть, инициализация не всегда проходит, ресет приходится делать.

 

ОтветитьЦитата
Размещено : 27.09.2023 06:07
Aveal
(@aveal)
Top level Admin

@stm Ну что сказать, ужасно если честно

ОтветитьЦитата
Создатель темы Размещено : 27.09.2023 09:42
 stm
(@stm)
Level 4
Можно с таймером. Таймер с периодом на 3 секунды поставил.
HAL_TIM_Base_Start(&htim4);
while (1)
{
  while(!(TIM4->SR & TIM_SR_UIF))
  {
    MX_USB_HOST_Process();
  }

  HAL_Delay(1000);
  printf("HELLO\n");
  TIM4->SR=0;
}
ОтветитьЦитата
Размещено : 27.09.2023 12:24
Aveal
(@aveal)
Top level Admin

@stm вот тут похожим образом решил тс, только через проверку статуса USB. Это на порядки, на много порядков, лучше, чем вариант с вызовом функции в течение времени. Но и это костыли конечно.

ОтветитьЦитата
Создатель темы Размещено : 27.09.2023 12:40
 stm
(@stm)
Level 4
Ни разу не видел, чтоб Appli_state переходил в режим APPLICATION_IDLE самостоятельно после режима APPLICATION_READY.
Напишите это в цикле while:
 
extern ApplicationTypeDef Appli_state;

while (1)
{
  MX_USB_HOST_Process();

  if(Appli_state == APPLICATION_IDLE)
  {
    printf("IDLE\n");
  }
}

 

ОтветитьЦитата
Размещено : 27.09.2023 13:05
Aveal
(@aveal)
Top level Admin

Не удивлюсь, если это не рабочее решение по ссылке, подход в корне кривой.

ОтветитьЦитата
Создатель темы Размещено : 27.09.2023 13:09
 stm
(@stm)
Level 4

Знает кто нибудь как работать с дисплеем TFT ILI9341 без библиотек?
Как инициализировать, как пиксели выводить на экран?
Всё что нахожу, всё на библиотеках.
Мне бы понять как инициализировать и логику подсветки пикселей, а там я сам эти библиотеки напишу.

ОтветитьЦитата
Размещено : 06.10.2023 21:21
Aveal
(@aveal)
Top level Admin

@stm Путь лежит через даташит )

ОтветитьЦитата
Создатель темы Размещено : 06.10.2023 21:24
(@eduard)
Level 5 Moderator
От: @stm

Знает кто нибудь как работать с дисплеем TFT ILI9341

Я знаю.

Драйвер на него писал на классах. Пришлось изучить.

ОтветитьЦитата
Размещено : 07.10.2023 11:42
Aveal
(@aveal)
Top level Admin

@stm внутри всех готовых библиотек есть низкоуровневая работа с контроллером дисплея.

ОтветитьЦитата
Создатель темы Размещено : 07.10.2023 11:52
(@eduard)
Level 5 Moderator

@aveal Это точно. Но я знаю больше. Так как внутри библиотек есть использование других библиотек, а у тех ещё дальше всё заходит. Поэтому отследить трудно, что происходит.

Я прошёлся по этой цепочке и начал понимать как это устроено на самом низком уровне. 🧐 

ОтветитьЦитата
Размещено : 07.10.2023 13:10
 stm
(@stm)
Level 4

Если будет с кем поговорить, я могу отдельную тему создать по этому дисплею.
Тема интересная, а информации мало на эту тему.
Я начал понемногу этот клубок распутывать, но пока что я в самом начале.

Тем и лучше, значит в теме будет всё от начала и до конца))

ОтветитьЦитата
Размещено : 07.10.2023 13:35
(@eduard)
Level 5 Moderator

@stm Могу статью написать. Только это не раньше вторника, если не забуду.

Ещё у меня есть начало статьи по теории вывода текста на подобные экраны.

@aveal С Вас структура поиска статей, о которой мы разговаривали. Извините, что здесь напоминаю. Но если это воплотить, думаю многим будет интересно.

ОтветитьЦитата
Размещено : 07.10.2023 13:44
Страница 15 / 18
Поделиться: