Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту


 
Опции темы
Непрочитано 10.07.2018, 13:21  
dkm
Прописка
 
Регистрация: 10.04.2010
Сообщений: 179
Сказал спасибо: 12
Сказали Спасибо 53 раз(а) в 36 сообщении(ях)
dkm на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от oleg110592 Посмотреть сообщение
Может сейчас ХАЛ стал лучше - есть ли у кого рабочий проект USB host на ХАЛе.
з.ы. установил последний куб - по прежнему не вижу в настройках периферии регистра Power control (PWR) (STM32F051C - как его в кубе настраивать то.
Как настраивать, ручками! Под нулевую серию хал не использую, уже писал.
Для 407 куб генерит рабочий код, USB host- флешка и SD карта на SDIO, все под FreeRTOS крутится, работает сразу.
Реклама:
dkm вне форума  
Непрочитано 10.07.2018, 14:29  
oleg110592
Почётный гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 1,194
Сказал спасибо: 41
Сказали Спасибо 141 раз(а) в 121 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от dkm Посмотреть сообщение
Как настраивать, ручками! Под нулевую серию хал не использую
В F401 тоже PWR есть. Не нашел так же настройки таймера в режиме энкодера. Если ручками - ХАЛ в топку, остальное тоже настроить можно ручками.
Сдул пыль с макета USB Host, создал в кубе проект (если с нуля бы - даже не знал что и тыкать). Запустил, питание 5В на USB флэшку не подалось, хотя ноги в кубе указал. Пошел дебажить.
Функция MX_USB_HOST_Process(); выглядит так:
Код:
void MX_USB_HOST_Process(void)
{
  /* USB Host Background task */
  USBH_Process(&hUsbHostFS);
}
смешновато, далее на полстраницы такое:
Нажмите, чтобы открыть спойлер
Код:
  __IO USBH_StatusTypeDef status = USBH_FAIL;
  uint8_t idx = 0;
  
  switch (phost->gState)
  {
  case HOST_IDLE :
    
    if (phost->device.is_connected)  
    {
      /* Wait for 200 ms after connection */
      phost->gState = HOST_DEV_WAIT_FOR_ATTACHMENT; 
      USBH_Delay(200); 
      USBH_LL_ResetPort(phost);
#if (USBH_USE_OS == 1)
      osMessagePut ( phost->os_event, USBH_PORT_EVENT, 0);
#endif
    }
    break;
    
  case HOST_DEV_WAIT_FOR_ATTACHMENT:
    break;    
    
  case HOST_DEV_ATTACHED :
    
    USBH_UsrLog("USB Device Attached");  
      
    /* Wait for 100 ms after Reset */
    USBH_Delay(100); 
          
    phost->device.speed = USBH_LL_GetSpeed(phost);
   phost->gState = HOST_ENUMERATION;
    
    phost->Control.pipe_out = USBH_AllocPipe (phost, 0x00);
    phost->Control.pipe_in  = USBH_AllocPipe (phost, 0x80);    
    
    
    /* Open Control pipes */
    USBH_OpenPipe (phost,
                   phost->Control.pipe_in,
                   0x80,
                   phost->device.address,
                   phost->device.speed,
                   USBH_EP_CONTROL,
                   phost->Control.pipe_size); 
    
    /* Open Control pipes */
    USBH_OpenPipe (phost,
                   phost->Control.pipe_out,
                   0x00,
                   phost->device.address,
                   phost->device.speed,
                   USBH_EP_CONTROL,
                   phost->Control.pipe_size);
    
#if (USBH_USE_OS == 1)
    osMessagePut ( phost->os_event, USBH_PORT_EVENT, 0);
#endif    
    
    break;
    
  case HOST_ENUMERATION:     
    /* Check for enumeration status */  
    if ( USBH_HandleEnum(phost) == USBH_OK)
    { 
      /* The function shall return USBH_OK when full enumeration is complete */
      USBH_UsrLog ("Enumeration done.");
      phost->device.current_interface = 0;
      if(phost->device.DevDesc.bNumConfigurations == 1)
      {
        USBH_UsrLog ("This device has only 1 configuration.");
        phost->gState  = HOST_SET_CONFIGURATION;        
        
      }
      else
      {
        phost->gState  = HOST_INPUT; 
      }
....

и так далее в том же духе
oleg110592 вне форума  
Непрочитано 10.07.2018, 16:04  
dkm
Прописка
 
Регистрация: 10.04.2010
Сообщений: 179
Сказал спасибо: 12
Сказали Спасибо 53 раз(а) в 36 сообщении(ях)
dkm на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от eddy Посмотреть сообщение
oleg110592, жесть! Они понатыкали пауз в 100мс (!!!) внутрь функций... Ну и [censored]!!
И калоеды этой дрянью пользуются!1111111
Конечно, проще "поумничать" с делаями, чем хоть немного в код вникнуть. Чем-то такие люди ардуинщиков напоминают.
dkm вне форума  
Непрочитано 10.07.2018, 16:11  
dkm
Прописка
 
Регистрация: 10.04.2010
Сообщений: 179
Сказал спасибо: 12
Сказали Спасибо 53 раз(а) в 36 сообщении(ях)
dkm на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от oleg110592 Посмотреть сообщение
Запустил, питание 5В на USB флэшку не подалось, хотя ноги в кубе указал.
Значит сами что-то накосячили.

Кож как код, в едином стиле весь HAL написан, чувствуется школа, а не колхоз самопальщиков. На первый взгляд избыточный, но тем не менее работает шустро, особо лишнего там ничего нет.
dkm вне форума  
Непрочитано 10.07.2018, 16:58  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 3,753
Сказал спасибо: 1,026
Сказали Спасибо 1,196 раз(а) в 864 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

ОФФ!
Таки казус... Хотя нет! Это очередная иллюстрация, что "задав вопрос на зарубежном форуме получаешь ответ, а задав на русском - тебе говорят, что всё не так и шлют лучи поноса".

Ведь в первом-же сообщении обяснили суть и попросили не троллить! С 64-х битным понятно - хроник. С Птицей понятно - понтуется здесь, потому как во дворе понтоваться опасно. А остальные-то что? Вроде опытные и вменяемые люди...
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Эти 3 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
igor1000 (16.07.2018), mike-y-k (10.07.2018), фёдорыч (11.07.2018)
Непрочитано 10.07.2018, 17:41  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 3,753
Сказал спасибо: 1,026
Сказали Спасибо 1,196 раз(а) в 864 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от eddy Посмотреть сообщение
А чего ж этим говнищем тогда пользуетесь???
Я не пользуюсь. И даже АРМ'атурой вообще ещё пользуюсь.
Но ТС постарался очертить круг вопросов ветки. А вместо конструктива - тема заливается холиваром.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Непрочитано 12.07.2018, 23:09  
yhnm
Вид на жительство
 
Аватар для yhnm
 
Регистрация: 17.09.2009
Адрес: Ярославль
Сообщений: 347
Сказал спасибо: 33
Сказали Спасибо 119 раз(а) в 82 сообщении(ях)
yhnm на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Попробовал STM32CubeMX + System Workbench for STM32 Конечно не PSoC Creator, но с ходу удалось помигать светодиодом через Delay, по таймеру, по прерываниям через USB/CDC, добавить WDT.
Легкий старт - это приятно. Больше пока не нужно , а когда понадобится - литературки и примеров проектов накопится.
Не нашел пока пример usb mass storage internal flash для SW4STM32 как здесь.
yhnm вне форума  
Непрочитано 13.07.2018, 17:43  
Serg3301
Вид на жительство
 
Регистрация: 03.10.2011
Сообщений: 353
Сказал спасибо: 30
Сказали Спасибо 167 раз(а) в 98 сообщении(ях)
Serg3301 на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от oleg110592 Посмотреть сообщение
Не нашел так же настройки таймера в режиме энкодера. Если ручками - ХАЛ в топку, остальное тоже настроить можно ручками.
Это сгенерил Куб. Работает.

Код:
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
{

  GPIO_InitTypeDef GPIO_InitStruct;
  if(htim_encoder->Instance==TIM2)
  {
  /* USER CODE BEGIN TIM2_MspInit 0 */

  /* USER CODE END TIM2_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_TIM2_CLK_ENABLE();
  
    /**TIM2 GPIO Configuration    
    PA15     ------> TIM2_CH1
    PB3     ------> TIM2_CH2 
    */
    GPIO_InitStruct.Pin = GPIO_PIN_15;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* USER CODE BEGIN TIM2_MspInit 1 */

  /* USER CODE END TIM2_MspInit 1 */
  }
  else if(htim_encoder->Instance==TIM5)
...
}

/* TIM2 init function */
static void MX_TIM2_Init(void)
{

  TIM_Encoder_InitTypeDef sConfig;
  TIM_MasterConfigTypeDef sMasterConfig;

  htim2.Instance = TIM2;
  htim2.Init.Prescaler = 0;
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim2.Init.Period = 65535;
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
  sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
  sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC1Filter = 5;
  sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
  sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
  sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
  sConfig.IC2Filter = 5;
  if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK)
  {
    Error_Handler();
  }

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }

}
Serg3301 вне форума  
Непрочитано 13.07.2018, 18:32  
oleg110592
Почётный гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 1,194
Сказал спасибо: 41
Сказали Спасибо 141 раз(а) в 121 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от Serg3301 Посмотреть сообщение
Это сгенерил Куб. Работает.
спасибо - теперь увидел. Может и PWR настройка где есть? Для сравнения настройка энкодера без ХАЛа, работает:
Код:
__INLINE void ConfigureTIM1AsEncoder (void)
{
    RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
    GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODER8 | GPIO_MODER_MODER9)) \
                   | (GPIO_MODER_MODER8_1 | GPIO_MODER_MODER9_1);
    GPIOA->AFR[1] |= 0x2 | (0x2 << ((9 - 8) * 4));

    TIM1->CCMR1 |= TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0; 
    TIM1->CCER |= (uint16_t) (TIM_CCER_CC1P | TIM_CCER_CC2P); 
    TIM1->SMCR |= TIM_SMCR_SMS_1; 
    TIM1->DIER |= TIM_DIER_UIE;
    TIM1->CR1 |= TIM_CR1_CEN; 
    NVIC_EnableIRQ (TIM1_BRK_UP_TRG_COM_IRQn); 
}
oleg110592 вне форума  
Непрочитано 13.07.2018, 20:45  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 17,054
Сказал спасибо: 2,530
Сказали Спасибо 8,723 раз(а) в 4,665 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.

Сообщение от oleg110592 Посмотреть сообщение
Для сравнения настройка энкодера без ХАЛа
Для полноты сравнения не хватает хронометажа написания врукопашную и "нажатия одной кнопки". "Хэнд мэйд" всегда дороже. Потому, что лучше? Нет, потому, что трудозатратней.
Наглядность и простота понимания у ХАЛа выше.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)

Последний раз редактировалось akegor; 14.07.2018 в 00:17.
akegor вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 04:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot