Sign in to follow this  
koteika

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

2 posts in this topic

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);
    

  
    

}

Share this post


Link to post
Share on other sites
mail_robot    1487
1 час назад, koteika сказал:

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

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

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • А в период с языческих атавизмов до пропаганды половой распущенности этот процесс остановился? Или все ложились исключительно под олигархов? Мажоров менее 1%. Такое войско не одолеет кучу баб, которые жаждут совокупиться с кошельками. Чисто физически не успеют. Я вас еще раз спрашиваю: как происходит размножение среднего класса и ниже?
    • Как размножались наши предки славяне? Ну например массово  трахались в нынешнюю пасху прямо на поле с целью повышения урожайности.     У меня есть давняя знакомая, у которой трое детей, непьющий муж и любовник - богатый буратино. И при всем при этом она вдруг стала  клеиться ко мне! Я в непонятках спросил коллегу  - мудрую бабку, типа на кой ляд я этой девушке с тремя детьми, мужем и богатым любовником сдался? Ответ меня убил: А про запас!!!
    • Уже лет 200 используют без всяких ардурин:
    • А мы заведем! Кризис - надо что-то жрать.
    • А как же размножаются обычные люди? Как размножались люди до появления денег или иных признаков материального благополучия? Я не олигарх, но как-то умудряюсь затаскивать баб в койку...
    • Частично.Это времязадающая цепь. А непосредственно на УЭ открывающий импульс выдаёт "пороговый элемент"  DB3 (симметричный динистор,который на то и симметричен,что при любой полярности открывается). А симистору тем более фиолетово,плюс коммутировать или минус.Ему на УЭ нужна полярность,совпадающая с полярностью на условном аноде или минусовая постоянка. Изучайте матчасть.
    • две недели назад был в Чернобыле. Нету там таких комаров