koteika

STM32 HAL подтяжка ноги

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

koteika    0

Здравствуйте товарищи :beer:  не выходит включить подтяжку ноги в кейле с использованием библиотеки HAL(пробовал на дискавери и Ф103), причем в кокосе проблем нет :cry:  уже варенный, помогите пожалуйста - укажите где ошибка. не ругайте сильно с СТМ знакомлюсь только

З.Ы. тут еще код для АЦП но он работает

#include "stm32f1xx_hal.h"

/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1;
DMA_HandleTypeDef hdma_adc1;

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
volatile uint16_t ADC_Data[4];
/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_ADC1_Init(void);

/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/

/* USER CODE END PFP */

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

int main(void)
{

  /* USER CODE BEGIN 1 */
    //float u;
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();

  /* USER CODE BEGIN 2 */
    HAL_ADC_Start_DMA(&hadc1, (uint32_t*) &ADC_Data, 4);
  /* USER CODE END 2 */
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_0, GPIO_PIN_SET);
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  
    //u=((float)ADC_Data[0])*3/65356;
        
    /* USER CODE END WHILE */
    
  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}

/** System Clock Configuration
*/
void SystemClock_Config(void)
{

  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;
  RCC_PeriphCLKInitTypeDef PeriphClkInit;

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = 16;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  HAL_RCC_OscConfig(&RCC_OscInitStruct);

  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);

  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
  PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);

  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  /* SysTick_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/* ADC1 init function */
void MX_ADC1_Init(void)
{

  ADC_ChannelConfTypeDef sConfig;

    /**Common config 
    */
  hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.DataAlign = ADC_DATAALIGN_LEFT;
  hadc1.Init.NbrOfConversion = 4;
  HAL_ADC_Init(&hadc1);

    /**Configure Regular Channel 
    */
  sConfig.Channel = ADC_CHANNEL_10;
  sConfig.Rank = 1;
  sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

    /**Configure Regular Channel 
    */
  sConfig.Channel = ADC_CHANNEL_11;
  sConfig.Rank = 2;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

    /**Configure Regular Channel 
    */
  sConfig.Channel = ADC_CHANNEL_12;
  sConfig.Rank = 3;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

    /**Configure Regular Channel 
    */
  sConfig.Channel = ADC_CHANNEL_13;
  sConfig.Rank = 4;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

}

/** 
  * Enable DMA controller clock
  */
void MX_DMA_Init(void) 
{
  /* DMA controller clock enable */
  __HAL_RCC_DMA1_CLK_ENABLE();

  /* DMA interrupt init */
  /* DMA1_Channel1_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);

}

/** Pinout Configuration
*/
void MX_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO;
    /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOC_CLK_ENABLE();
    __HAL_RCC_GPIOE_CLK_ENABLE();
    
    
    GPIO.Pin = GPIO_PIN_0;
  GPIO.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOE, &GPIO);
    

  
    

}

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
mail_robot    1 191
1 час назад, koteika сказал:

GPIO.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO.Pull = GPIO_NOPULL;

если нога выход и настронена на режим пуш-пулл, то никакой подтяжки включить не получится. Такого режима просто нет. Можно подтянуть только если нога вход. Не устали голову греть над несуществующей проблемой?

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


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

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

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

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

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

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

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

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

Загрузка...

  • Сообщения

    • Здраствуйте! abovar переделал по вашей схеме даный бп для пускового,все хорошо,но когда выставлено напряжение одно,то после подключения нагрузки 4-5а идет подем напряжения на 0,5в от выставленого у вас так же или у меня что то непляшет?
    • Ну что-ж...  Идя на поводу аудиофильских мнений Вам ничего другого не остаётся. В любом случае - лишь Вам решать, что именно ставить.  Керамика - стоит недорого. И, всегда есть возможность ... просто ЛИЧНО сравнить.  А, в целом - удачи.    Ещё. Обычно - плата в целом - может сама по себе ... быть "с микрофонным" эффектом.  Так вот тут - конденсаторы - не при делах. Тут кривые руки монтажников "постарались". А, потом - уже они готовы обвинять всё и вся, кроме себя любимых.
    • Подключил другой трансформатор, от компа полуразобраный, первичка примерно 40 Витков. Выбросы значительно уменьшились, ключи похолодели. Верхний ключ.Нижний ключ. Это приемлемый уровень выбросов? или нужно ковыряться пока совсем гладко не будет, или идеально не бывает. Пробывал менять емкости полумоста, диоды на резисторы в затворе, не влияет.
    • У меня 2 пары в АВ - хотел чтоб было ват по 100 на канал на 8Ом чёто я не догоняю - по моему не выдержат , что у меня получится АВ с 2-мя парами - мощнее Трёшки с 3-мя парами ?!чёто я очкую!!! обоснуй по подробней , я твоих выкладок выше не понял.
    • Пошловато конечно но глядя на европу   улыбнуло))))
    • Ещё вам немного материала, ребята, для обсуждений..
      https://www.google.com/search?q=объяснительная+записка&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi3xsy_5NLXAhUB_IMKHZyJDg8Q_AUICigB&biw=1024&bih=686#imgrc=_
    • Спасибо, где только искать? Намотал трансформатор на кольце СССРовском К40х25х11, на нем точно все работало, результат тот же. Достал стаааарый усь, мост тда7294 с доп транзисторами на выходе, как раз из тех моих давних, что без снабберов и выходных дросселей. Там 4 ключа IRFZ44 стоят на алюминевой пластине 12х4 см, прогрел градусов до 70 большой радиатор УНЧ, а ключи только теплые. Не понимаю, что случилось.