NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3347 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 9 از 9

موضوع: راه اندازی usartدر stm32f103RET

  1. #1
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض راه اندازی usartدر stm32f103RET

    با سلام دوستان من این کدها رو نوشتم ولی سریال میکروم دیتایی ارسال نمیکنه البته تازه کار هستم؛امکانش هست اشکال این پروژه رو بهم بگید و اگر میخوام چیزی چاپ در ترمینال سریال در کجا باید بنویسم و چیزی که نوشتم صحیحه با سپاس

    #include "stm32f10x.h"
    #include "RTC_Time.h"
    #include <stdio.h>


    #ifdef __GNUC__
    /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
    set to 'Yes') calls __io_putchar() */
    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    #else
    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    #endif /* __GNUC__ */


    /* Private function prototypes -----------------------------------------------*/
    void GPIO_Configuration(void);
    void USART_Configuration(void);


    /************************************************** *****************************
    * Function Name : main
    * Description : Main program
    * Input : None
    * Output : None
    * Return : None
    * Attention : None
    ************************************************** *****************************/
    void Delay (uint32_t nCount)
    {
    for(; nCount != 0; nCount--);
    }


    int main(void)
    {
    GPIO_Configuration();
    USART_Configuration();
    // printf("\r\n");
    //printf("****************************************** *********************\r\n");
    //printf("* *\r\n");
    //printf("* hi *\r\n");
    //printf("* *\r\n");
    //printf("****************************************** *********************\r\n");
    /* LED1-ON LED2-ON */
    GPIO_SetBits(GPIOA, GPIO_Pin_2);
    Delay(0xfffff);
    Delay(0xfffff);
    Delay(0x5ffff);
    // GPIO_ResetBits(GPIOA , GPIO_Pin_2);
    //GPIO_SetBits(GPIOB , GPIO_Pin_1);


    //RTC_Init();


    /* Infinite loop */
    while (1){
    USART_SendData(USART1,0x02);
    // printf("* Thank you *\r\n");
    GPIO_ResetBits(GPIOA , GPIO_Pin_2);
    Delay(0xfffff);
    Delay(0xfffff);
    Delay(0x5ffff);

    GPIO_SetBits(GPIOA , GPIO_Pin_2);
    Delay(0xfffff);
    Delay(0xfffff);
    Delay(0x5ffff);

    }
    }


    /************************************************** *****************************
    * Function Name : GPIO_Configuration
    * Description : Configure GPIO Pin
    * Input : None
    * Output : None
    * Return : None
    * Attention : None
    ************************************************** *****************************/
    void GPIO_Configuration(void)
    {
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
    /**
    * LED1 -> PB0 LED2 -> PB1
    */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;//| GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    }


    /************************************************** *****************************
    * Function Name : USART_Configuration
    * Description : Configure USART1
    * Input : None
    * Output : None
    * Return : None
    * Attention : None
    ************************************************** *****************************/
    void USART_Configuration(void)
    {
    GPIO_InitTypeDef GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;


    RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1,ENABLE);
    /*
    * USART1_TX -> PA9 , USART1_RX -> PA10
    */

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);


    USART_InitStructure.USART_BaudRate =115200;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;


    USART_Init(USART1, &USART_InitStructure);
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
    USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
    USART_Cmd(USART1, ENABLE);
    }


    /**
    * @brief Retargets the C library printf function to the USART.
    * @param None
    * @retval None
    */
    PUTCHAR_PROTOTYPE
    {
    /* Place your implementation of fputc here */
    /* e.g. write a character to the USART */
    USART_SendData(USART1, (uint8_t) ch);


    /* Loop until the end of transmission */
    while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
    {}


    return ch;
    }


    #ifdef USE_FULL_ASSERT


    /**
    * @brief Reports the name of the source file and the source line number
    * where the assert_param error has occurred.
    * @param file: pointer to the source file name
    * @param line: assert_param error line source number
    * @retval None
    */
    void assert_failed(uint8_t* file, uint32_t line)
    {
    /* User can add his own implementation to report the file name and line number,
    ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */


    /* Infinite loop */
    while (1)
    {
    }
    }
    #endif


    /************************************************** ************************************************** *****
    END FILE
    ************************************************** ************************************************** *****/



  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    پاسخی برای این پست نیست؟

  4. #3
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    سلام
    1. اول سعی کن کدت رو توی تگ قرار بدی تا بشه خوند.
    2. برای فعال کردن usart باید کلاک مربوط به قسمت afio و usart فعال بشه.
    3. میتونی توی مد دیباگ ببینی که اصلا usart فعال شده یا نه.

  5. #4
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    خوب بلد نیستم اینارو ممنون میشم بهم یاد بدید

  6. #5
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Raha323 نمایش پست ها
    خوب بلد نیستم اینارو ممنون میشم بهم یاد بدید
    الان منظورتون کدوم قسمتش بود؟

  7. تشکرها از این نوشته :


  8. #6
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    برای فعال کردن usart باید کلاک مربوط به قسمت afio و usart فعال بشه

  9. #7
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    کد:
    rcc->apb2enr|=rcc_apb2enr_afioen
    rcc->apb2enr|=rcc_apb2enr_usart1en

  10. تشکرها از این نوشته :


  11. #8
    کاربر فعال
    تاریخ عضویت
    Jul 2012
    نوشته ها
    101
    تشکر
    23
    تشکر شده 3 بار در 1 پست

    پیش فرض

    اینارو کجا بنویسم؟

    - - - Updated - - -

    تو کیل من مینویسم

  12. #9
    کاربر فعال
    تاریخ عضویت
    Feb 2012
    نام
    مصطفی
    نوشته ها
    273
    تشکر
    195
    تشکر شده 128 بار در 93 پست

    پیش فرض

    این قسمت ها باید قبل از انجام تنظیمات مربوط به USART فعال بشن.
    البته شاید کتابخونه های CMSIS خودش این کار رو انجام بده.
    به هر حال شما میتونی این دستورها رو قبل از فراخونی تابع USART_Configuration قرار بدی.

  13. تشکرها از این نوشته :


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

  1. يه سوال درباره راه اندازي stm32f103ret
    توسط avr_1360 در انجمن stm32
    پاسخ: 2
    آخرين نوشته: 17-08-2014, 22:14
  2. از كار افتادن SWD در stm32f103ret
    توسط sanatnegar در انجمن stm32
    پاسخ: 4
    آخرين نوشته: 14-07-2014, 14:03

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

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