10.07.2018, 13:21
|
|
Вид на жительство
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Сообщение от oleg110592
|
Может сейчас ХАЛ стал лучше - есть ли у кого рабочий проект USB host на ХАЛе.
з.ы. установил последний куб - по прежнему не вижу в настройках периферии регистра Power control (PWR) (STM32F051C - как его в кубе настраивать то.
|
Как настраивать, ручками! Под нулевую серию хал не использую, уже писал.
Для 407 куб генерит рабочий код, USB host- флешка и SD карта на SDIO, все под FreeRTOS крутится, работает сразу.
|
|
|
|
10.07.2018, 14:29
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
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;
} |
....
и так далее в том же духе
|
|
|
|
10.07.2018, 16:04
|
|
Вид на жительство
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Сообщение от eddy
|
oleg110592, жесть! Они понатыкали пауз в 100мс (!!!) внутрь функций... Ну и [censored]!!
И калоеды этой дрянью пользуются!1111111
|
Конечно, проще "поумничать" с делаями, чем хоть немного в код вникнуть. Чем-то такие люди ардуинщиков напоминают.
|
|
|
|
10.07.2018, 16:11
|
|
Вид на жительство
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Сообщение от oleg110592
|
Запустил, питание 5В на USB флэшку не подалось, хотя ноги в кубе указал.
|
Значит сами что-то накосячили.
Кож как код, в едином стиле весь HAL написан, чувствуется школа, а не колхоз самопальщиков. На первый взгляд избыточный, но тем не менее работает шустро, особо лишнего там ничего нет.
|
|
|
|
10.07.2018, 16:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,054
Сказал спасибо: 3,042
Сказали Спасибо 3,212 раз(а) в 2,182 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
ОФФ!
Таки казус... Хотя нет! Это очередная иллюстрация, что "задав вопрос на зарубежном форуме получаешь ответ, а задав на русском - тебе говорят, что всё не так и шлют лучи поноса".
Ведь в первом-же сообщении обяснили суть и попросили не троллить! С 64-х битным понятно - хроник. С Птицей понятно - понтуется здесь, потому как во дворе понтоваться опасно. А остальные-то что? Вроде опытные и вменяемые люди...
__________________
Экзорцист 40-го уровня.
|
|
|
Эти 5 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
|
|
|
10.07.2018, 17:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,054
Сказал спасибо: 3,042
Сказали Спасибо 3,212 раз(а) в 2,182 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Сообщение от eddy
|
А чего ж этим говнищем тогда пользуетесь???
|
Я не пользуюсь. И даже АРМ'атурой вообще ещё пользуюсь.
Но ТС постарался очертить круг вопросов ветки. А вместо конструктива - тема заливается холиваром.
__________________
Экзорцист 40-го уровня.
|
|
|
|
12.07.2018, 23:09
|
|
Вид на жительство
Регистрация: 17.09.2009
Адрес: Ярославль
Сообщений: 384
Сказал спасибо: 43
Сказали Спасибо 152 раз(а) в 101 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Попробовал STM32CubeMX + System Workbench for STM32 Конечно не PSoC Creator, но с ходу удалось помигать светодиодом через Delay, по таймеру, по прерываниям через USB/CDC, добавить WDT.
Легкий старт - это приятно. Больше пока не нужно , а когда понадобится - литературки и примеров проектов накопится.
Не нашел пока пример usb mass storage internal flash для SW4STM32 как здесь.
|
|
|
|
13.07.2018, 17:43
|
|
Вид на жительство
Регистрация: 03.10.2011
Сообщений: 485
Сказал спасибо: 35
Сказали Спасибо 234 раз(а) в 138 сообщении(ях)
|
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();
}
} |
|
|
|
|
13.07.2018, 18:32
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
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);
} |
|
|
|
|
13.07.2018, 20:45
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
Re: STM32CubeMX, HAL и все вокруг них. Территория, свободная от сектантов.
Сообщение от oleg110592
|
Для сравнения настройка энкодера без ХАЛа
|
Для полноты сравнения не хватает хронометажа написания врукопашную и "нажатия одной кнопки". "Хэнд мэйд" всегда дороже. Потому, что лучше? Нет, потому, что трудозатратней.
Наглядность и простота понимания у ХАЛа выше.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 14.07.2018 в 00:17.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:39.
|
|