ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2007/08/21
    تهران
    842
    4

    stm32f107 64pin مشکل uart

    با سلام
    من تا حالا با پرسورهای nxp کار می کردم و بخاطر برخی مسایل ( قیمت و .. ) تصیمی گرفتم پروژه جدیدم رو با st کار کنم یک برد با stm32f107 زدم البته 64 پین .
    ولی برد با استفاده از usart1 اصلا پرگرام نمیشه ( با برنامه falsh loader ) البته پینهای ریست و boot رو هم استفاده می کنم .
    ولی با دیباگر stdlink پرگرام میشود و تمام قسمتهای سخت افزاری مشکلی ندارد .
    ولی وقتی هم با دیباگر پراگرام شد ؛ uart1 , uart5 در rx l مشکل دارم ولی tx هر دو پروت به خوبی کار می کنه .
    اصلا در هیچکدام از اینتراپتهای دریافت پورت سریال برنامه وارد نمیشه .
    بدلیل اینکه با flash loader هم مشکل دارم فکر می کنم باید مشکل سخت افزاری باشه ولی هرچقدر چک می کنم در سخت افزاری چیزی پیدا نکردم .
    در صورت امکان بفرمایید مشکل از کجا می تونه باشه

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  2. #2
    2007/08/21
    تهران
    842
    4

    پاسخ : stm32f107 64pin مشکل uart

    مشکل پرگرام کردن و ارتباط با falsh loader حل شد و بخاطر مشکل دار بودن پایه ریست بود ( احتمالا )
    ولی برنامه هنوز هم در هیچ کدام از اینتراپتهای پورت سریال وارد نمی شود .
    برنامه را با stm32cube درست کردم و ide که استفاده می کنم sw4stm32 است :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت




    کد:
    void MX_USART1_UART_Init(void)
    {
    
      huart1.Instance = USART1;
      huart1.Init.BaudRate = 115200;
      huart1.Init.WordLength = UART_WORDLENGTH_8B;
      huart1.Init.StopBits = UART_STOPBITS_1;
      huart1.Init.Parity = UART_PARITY_NONE;
      huart1.Init.Mode = UART_MODE_TX_RX;
      huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
      huart1.Init.OverSampling = UART_OVERSAMPLING_16;
      if (HAL_UART_Init(&huart1) != HAL_OK)
      {
        _Error_Handler(__FILE__, __LINE__);
      }
    
    }



    کد:
    void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
    {
    
      GPIO_InitTypeDef GPIO_InitStruct;
      if(uartHandle->Instance==UART5)
      {
      /* USER CODE BEGIN UART5_MspInit 0 */
    
      /* USER CODE END UART5_MspInit 0 */
        /* UART5 clock enable */
        __HAL_RCC_UART5_CLK_ENABLE();
      
        /**UART5 GPIO Configuration    
        PC12     ------> UART5_TX
        PD2     ------> UART5_RX 
        */
        GPIO_InitStruct.Pin = GPIO_PIN_12;
     //   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    
        GPIO_InitStruct.Pin = GPIO_PIN_2;
        GPIO_InitStruct.Mode = GPIO_MODE_INPUT ;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
           HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
        HAL_NVIC_SetPriority(UART5_IRQn,0, 0);
           HAL_NVIC_EnableIRQ(UART5_IRQn);
    
      /* USER CODE BEGIN UART5_MspInit 1 */
    
      /* USER CODE END UART5_MspInit 1 */
      }
      else if(uartHandle->Instance==USART1)
      {
      /* USER CODE BEGIN USART1_MspInit 0 */
    
      /* USER CODE END USART1_MspInit 0 */
        /* USART1 clock enable */
        __HAL_RCC_USART1_CLK_ENABLE();
      
        /**USART1 GPIO Configuration    
        PA9     ------> USART1_TX
        PA10     ------> USART1_RX 
        */
        GPIO_InitStruct.Pin = GPIO_PIN_9;
           GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
           GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
           HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
           GPIO_InitStruct.Pin = GPIO_PIN_10;
           GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
           GPIO_InitStruct.Pull = GPIO_NOPULL;
           HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
       // USART_ITConfig(USART1, UART_IT_RXNE, ENABLE);
        /* USART1 interrupt Init */
        HAL_NVIC_EnableIRQ(USART1_IRQn);
        HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
    
         /* USER CODE BEGIN USART1_MspInit 1 */
    
      /* USER CODE END USART1_MspInit 1 */
      }
    }


    کد:
    void USART1_IRQHandler(void)
    {
      /* USER CODE BEGIN USART1_IRQn 0 */
        //USART1_IRQn
      /* USER CODE END USART1_IRQn 0 */
      HAL_UART_IRQHandler(&huart1);
      HAL_UART_Receive_IT(&huart1, bufferrx, 1);
      /* USER CODE BEGIN USART1_IRQn 1 */
    
      /* USER CODE END USART1_IRQn 1 */
    }
    ویرایش توسط dariush_abbasi868 : 2019/02/10 در ساعت 09:00
  3. #3
    2014/03/17
    خراسان رضوی
    168
    18

    پاسخ : stm32f107 64pin مشکل uart

    سلام
    دستور usart_itconfig رو از حالت کامنت بیرون بیارید و داخل کیوب بخش nvic به وقفه پورت سریال یک priority اختصاص بدید
  4. #4
    2007/08/21
    تهران
    842
    4

    پاسخ : stm32f107 64pin مشکل uart

    با سلام و با تشکر
    دستور usart_itconfig رو از یک جای دیگر و رای یک IDE دیگر بود که اضاقه کردم ولی ظاهرا اصلا وجود ندارد در اینجا و ERROR می دهد ، ضمن اینکه کد CUBE هم چنین چیزی خروجی نمی دهد به هیمن خاطر کامنتش کردم .
    PRIORTY وقفه ها دستی داده شود و با CUBE هم اصلا ح شد ولی فرقی نکرد
نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. راه اندازی ethernet در stm32f107
    توسط mehdi_m_m در انجمن STM
    پاسخ: 0
    آخرين نوشته: 2018/01/30, 22:29
  2. مشکل با UART
    توسط eca_user در انجمن میکروکنترلرهای PIC
    پاسخ: 8
    آخرين نوشته: 2016/08/26, 19:48
  3. پاسخ: 1
    آخرين نوشته: 2015/04/30, 01:33
  4. دخیره کردن اطلاعات روی stm32f107
    توسط gbg در انجمن STM
    پاسخ: 3
    آخرين نوشته: 2015/02/10, 14:06
  5. پاسخ: 3
    آخرين نوشته: 2014/03/09, 12:19

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •