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

نمایش نتیجه های نظرسنجی ها: چگونه STM32 را ياد بگيريم؟

رأی دهندگان
263. شما نمی توانید در این نظرسنجی رای دهید.
  • سطحي و كار راه انداز

    20 7.60%
  • دقيق و حرفه اي

    243 92.40%
صفحه 38 از 58 نخستنخست ... 192021222324252627282930313233343536373839404142434445464748495051525354555657 ... آخرینآخرین
نمایش نتایج: از 741 به 760 از 1155

موضوع: شروع آموزش stm32 بر پایه برد سفارشی

  1. #741
    کاربر فعال sjafarim آواتار ها
    تاریخ عضویت
    Jan 2008
    نام
    جعفری
    نوشته ها
    225
    تشکر
    93
    تشکر شده 297 بار در 141 پست

    پیش فرض

    در کل روش کار اینه:
    کد:
    /* Configure PA8 as input floating For TP_IRQ*/
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    	GPIO_Init(GPIOA,&GPIO_InitStructure);
    
    	GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);
    
        /* Configure Button EXTI line */
        EXTI_InitStructure.EXTI_Line = EXTI_Line8;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    	EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
    	EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);
    
    	/* Enable and set Button EXTI Interrupt to the lowest priority */
        NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
    
    	EXTI_GenerateSWInterrupt(EXTI9_5_IRQn);
    اول پورت a8بصورت float تعریف میشه که پایه اینتراپت باید ازین نوع باشه :
    کد:
    /* Configure PA8 as input floating For TP_IRQ*/
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    	GPIO_Init(GPIOA,&GPIO_InitStructure);
    این دستور پایه 8 پورت a رو بعنوان اینتراپت پیکربندی میکنه.
    کد:
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);
    حالا میرسیم به جای مهمش:
    یک سری اینتراپت لاین و در ازای هریک یه تابع ایتراپت در stm32f10x_it.c وجود داره، پایه های 0 تا 4 تابع مجزا، پایه های 5 تا 9 یک تابع (لاین) و پایه های 10 تا 15 یک لاین دارند، این یعنی چی؟
    یعنی اگر مثلا شما پایه 7 از هر پورتیو بخوای به عنوان اینتراپت فعال کنی باید از لاین 5 تا9 استفاده کنی و تابع اینتراپتتو هم درون بنویسی، توابع به شکل زیرند:
    کد:
    void EXTI0_IRQHandler(void);
    void EXTI1_IRQHandler(void);
    void EXTI2_IRQHandler(void);
    void EXTI3_IRQHandler(void);
    void EXTI4_IRQHandler(void);
    void EXTI9_5_IRQHandler(void);
    void EXTI15_10_IRQHandler(void);
    حالا در خط های بعدی کد میبینی که چطور لاین معرفی شده بع nvic کانال مرتبطش وصل میشه تا بتونه تولید اینتراپت کنه و بقیه خواص وقفه تنظیم میشن مثل نوع حساسیت لبه و اولویت و...:
    کد:
    /* Configure Button EXTI line */
        EXTI_InitStructure.EXTI_Line = EXTI_Line8;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    		EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
    		EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);
    
    	/* Enable and set Button EXTI Interrupt to the lowest priority */
        NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
    بعدم فعالش میکنی:
    کد:
    EXTI_GenerateSWInterrupt(EXTI9_5_IRQn);
    ویرایش توسط sjafarim : 24-08-2013 در ساعت 11:39

  2. کاربران : 6 تشکر کرده اند از شما sjafarim برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #742
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    48
    تشکر
    16
    تشکر شده 25 بار در 15 پست

    پیش فرض

    مرسی از توضیح دقیقتون
    کاملا درست فعال میشه و کار میکنه، اما وقتی جای porta تو همین برنامه portb میذارم باز همون مشکل قبلی دارم، یعنی با B8 هیچکاری نمیکنه و همچنان با A8 فعاله
    کلاک portb هم فعاله

  5. #743
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    شما تو قسمت فعال کردن کلاک ، کلاک واحد afio رو هم فعال کنید ..

  6. کاربران : 4 تشکر کرده اند از شما sigma-mx برای ارسال این پست سودمند:


  7. #744
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    48
    تشکر
    16
    تشکر شده 25 بار در 15 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sigma-mx نمایش پست ها
    شما تو قسمت فعال کردن کلاک ، کلاک واحد afio رو هم فعال کنید ..
    نکته ش همینه،درس شد
    مرسیییییی

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


  9. #745
    عضو جدید Omid_Refah آواتار ها
    تاریخ عضویت
    Aug 2008
    نوشته ها
    16
    تشکر
    116
    تشکر شده 7 بار در 1 پست

    پیش فرض

    با سلام به همه دوستان
    در مورد کتابخانه های cmsis کسی از دوستان خودآموزی، چیزی سراغ داره که بتونه لینک بده ؟

  10. #746
    کاربر فعال sjafarim آواتار ها
    تاریخ عضویت
    Jan 2008
    نام
    جعفری
    نوشته ها
    225
    تشکر
    93
    تشکر شده 297 بار در 141 پست

    پیش فرض

    سلام دوست عزیز
    یه فایل chm. همراه خود cmsis هست که help کامل اونه و کاملترین مرجع برای یادگیری هر بخش.

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


  12. #747
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض

    یه سوال چرا تایمر اینقدر کم مورد توجه قرار گرفته ؟ راه اندازی و کار با تیمر هم مهمه

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


  14. #748
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط spring110.sh نمایش پست ها
    یه سوال چرا تایمر اینقدر کم مورد توجه قرار گرفته ؟ راه اندازی و کار با تیمر هم مهمه
    سلام مهندس
    این لینکو نگاه کن.
    _____________________________________
    _____________________________________

  15. #749
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض استفاده از تایمر

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلام مهندس
    این لینکو نگاه کن.

    ممنون مهندس . اولا من کل این تاپیک ها رو خوندم و از آموزش های پربار شما و دوستان استاده بردم . اما تو این مثال تایمر ، من راه اندازی رو میدونم ، ااما مشکلم تو استفاده از اونه ! مثلا من می خوام از تایمر 2،3 و 4 استفاده کنم . تایمر 2 زمان کار کل سیستم مثلا 8 ساعته ! بعد 8 ساعت سیستم خاموش می شه ! ( من از کجا می تونم مقدار هربار سرریز تایمر رو بردارم که تو یه تابع زمان 8 ساعت رو براش درست کنم )
    تایمر های دیگه هم هرکدوم کارای دیگه ای خواهند کرد ...
    خوشحال می شم راهنمایی کنید

  16. #750
    Banned
    تاریخ عضویت
    Apr 2011
    نام
    مهدی رحیمی
    نوشته ها
    727
    تشکر
    1,015
    تشکر شده 1,448 بار در 579 پست

    پیش فرض

    سلام تایمر برای اینکار شاید مناسب نباشه (بخاطر همون 8 ساعتی که گفتید) چون اگر میکروتون به هر دلیل تو این فاصله 8 ساعت خاموش بشه مشکل براتون ایجاد میکنه بهتره از ار تی سی داخلی برای داشتن زمان دقیق استفاده کنید و زمانتونو بر اساس اون تو برنامه بکار ببرید البته از تایمر هم میشه ولی مشکلش همون قضیه ای که بالا گفتم ممکنه براش پیش بیاد البته همه اینا پیشنهاد و نظر شخصیمه مطمعنا اقا صادق خودشون اینکاره اند

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


  18. #751
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض استفاده از تایمر و rtc

    نقل قول نوشته اصلی توسط kamikazi نمایش پست ها
    سلام تایمر برای اینکار شاید مناسب نباشه (بخاطر همون 8 ساعتی که گفتید) چون اگر میکروتون به هر دلیل تو این فاصله 8 ساعت خاموش بشه مشکل براتون ایجاد میکنه بهتره از ار تی سی داخلی برای داشتن زمان دقیق استفاده کنید و زمانتونو بر اساس اون تو برنامه بکار ببرید البته از تایمر هم میشه ولی مشکلش همون قضیه ای که بالا گفتم ممکنه براش پیش بیاد البته همه اینا پیشنهاد و نظر شخصیمه مطمعنا اقا صادق خودشون اینکاره اند
    آقا ممنون . نکته جالبی بود ... البته من الان یه مشکل دارم که همون بحث استفاده از تایمره !
    و خب این rtc رو هم باید برم بخونم ببینم چه جوریه !

  19. #752
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض برنامه کنترل موتور +spi

    برنامه زیر کاربرد ADC ، SPi رو نشون می ده !

    کد:
    #include "stm32f10x.h"
    #include <stdio.h>
    #include "stm32f10x_ADC.h"
    #include "stm32f10x_gpio.h"
    #include "stm32f10x_spi.h"
    #include "stm32f10x_rcc.h"
    #include "misc.h"
    GPIO_InitTypeDef GPIO_InitStructure;
    ADC_InitTypeDef ADC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStruct;
    SPI_InitTypeDef SPI_InitStructure;
    int a=0,b=0;
    
    void main(void){
    
        
        
    /********************** GPIO configuration*********************************/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;    // we want the pins to be an output
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;     // this sets the GPIO modules clock speed
    //GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;     // this sets the pin type to push / pull (as opposed to open drain)
        //GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;     // this sets the pullup / pulldown resistors to be inactive
        GPIO_Init(GPIOD, &GPIO_InitStruct);             // this finally passes all the values to the GPIO_Init function which takes care of setting the corresponding bits.
    
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;          // we want to configure PA0
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;       // we want it to be an input
        GPIO_Init(GPIOA, &GPIO_InitStruct);              // this passes the configuration to the Init function which takes care of the low level stuff
        
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    /*    ADC configuration */
    
      ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
      ADC_InitStructure.ADC_ScanConvMode = DISABLE;                  
      ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;              
      ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
      ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
      ADC_InitStructure.ADC_NbrOfChannel = 1;
      ADC_Init(ADC1, &ADC_InitStructure);
      ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_13Cycles5);        
    //*********start ADC************/
      ADC_Cmd(ADC1, ENABLE);
      ADC_ResetCalibration(ADC1);
      while(ADC_GetResetCalibrationStatus(ADC1));
      ADC_StartCalibration(ADC1);                                            
      while(ADC_GetCalibrationStatus(ADC1));
      ADC_SoftwareStartConvCmd(ADC1, ENABLE);
        
        
        //*****************SPI Configuration**************/
        
        // tabe marbot be tanzimate clock haste(CORE=72MHz) mikro va faal kardane clock portha va SPI1
        //RCC_INIT(); 
        
        //tanzime pinhaye PORTe SPI1: SCK , MISO , MOSI 
        GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_AF_PP;                               
        GPIO_InitStructure.GPIO_Speed     = GPIO_Speed_50MHz;                            
        GPIO_Init(GPIOA, &GPIO_InitStructure);                                        
    
        // tanzime pinhaye PORTe SPI1 : NSS 
        GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_Out_PP;                            
        GPIO_InitStructure.GPIO_Speed     = GPIO_Speed_50MHz;                            
        GPIO_Init(GPIOA, &GPIO_InitStructure);   
    
        // Tanzime parametrhaye porte SPI
      SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;        
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                       
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                       
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;                       
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;                   
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                           
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;               
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; 
        SPI_Init(SPI1, &SPI_InitStructure);
        SPI_Cmd(SPI1,ENABLE);
        
            /***************** motor on/off controll********************* */
            while(1){
        while(GPIO_Pin_0 ==1) //when pinA.0 =1 start under code's.(agar klide controle motor zade shavad)
            
        {
        
        if (GPIO_Pin_2 & 0x1 !=0 ) //pinA.2 & 1 ...if()= 1 then ...(barrasi mikonad ke motor khamoosh ya roshan )
        {
              
    GPIO_ResetBits (GPIOA, GPIO_Pin_2);//if motor was on then it be off ! 
        }
         else if(GPIO_Pin_2 & 0x1 ==0 )
             {//if motor was off :
             GPIO_setBits (GPIOA, GPIO_Pin_2);//the motor be on !
     }
     
      }
        
           a = ADC_GetConversionValue(ADC1);    
                b=a*(1000)+29; //sample of ADC(Motor sensor) formul !
    
    SPI_I2S_SendData(SPI1, b); 
                     while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)== RESET){}
                      
                     
                 }}
    برنامه بالا قراره که یه خروجی مثلا موتور رو خاموش و روشن کنه و توسط یه سنسور که دورسنج یا دما می تونه باشه ، مقدار رو دریافت و در پورت spi قرار بده ...

    اساتید لطف می کنید بررسی کنید که این برنامه درسته و آیا کار می کنه ؟ من برد آرم رو ندارم .
    خواستم کل فایل رو هم که فشرده کرده بودم رو بذارم ، اما خطا گرفت !
    ویرایش توسط spring110.sh : 03-09-2013 در ساعت 18:20

  20. #753
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض کنترل پورت ها و نمایش adc بر روی پورت سریال

    نقل قول نوشته اصلی توسط spring110.sh نمایش پست ها
    برنامه زیر کاربرد ADC ، SPi رو نشون می ده !

    کد:
    #include "stm32f10x.h"
    #include <stdio.h>
    #include "stm32f10x_ADC.h"
    #include "stm32f10x_gpio.h"
    #include "stm32f10x_spi.h"
    #include "stm32f10x_rcc.h"
    #include "misc.h"
    GPIO_InitTypeDef GPIO_InitStructure;
    ADC_InitTypeDef ADC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStruct;
    SPI_InitTypeDef SPI_InitStructure;
    int a=0,b=0;
    
    void main(void){
    
    = RESET){}
                      
                     
                 }}
    !


    برنامه بالا مشکلی داشت تو قسمت کنترل خروجیش که به شکل زیر اصلاحش کردم ! (قسمت کنترل روشن و خاموش خروجیش ) :
    [PHP]while(GPIO_ReadOutputDataBit (GPIOA, GPIO_Pin_1)==1) //when pinA.0 =1 start under code's.(agar klide controle motor zade shavad)

    {

    GPIOA->ODR ^= GPIO_Pin_3;//toggle bit
    GPIO_ResetBits (GPIOA, GPIO_Pin_1);

    break;[/PHP]
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar main.rar (1.6 کیلو بایت, 32 نمايش)

  21. #754
    عضو جدید Omid_Refah آواتار ها
    تاریخ عضویت
    Aug 2008
    نوشته ها
    16
    تشکر
    116
    تشکر شده 7 بار در 1 پست

    پیش فرض

    با سلام
    این هم یک عکس برای کسانی که مث من تو فهم پسوندهای stm32 مشکل داشتند :
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: STM32 Number Suffixes.JPG
مشاهده: 62
حجم: 119.2 کیلو بایت  

  22. کاربران : 7 تشکر کرده اند از شما Omid_Refah برای ارسال این پست سودمند:


  23. #755
    کاربر علاقه مند
    تاریخ عضویت
    Oct 2012
    نوشته ها
    48
    تشکر
    16
    تشکر شده 25 بار در 15 پست

    پیش فرض

    نقل قول نوشته اصلی توسط kamikazi نمایش پست ها
    سلام تایمر برای اینکار شاید مناسب نباشه (بخاطر همون 8 ساعتی که گفتید) چون اگر میکروتون به هر دلیل تو این فاصله 8 ساعت خاموش بشه مشکل براتون ایجاد میکنه بهتره از ار تی سی داخلی برای داشتن زمان دقیق استفاده کنید و زمانتونو بر اساس اون تو برنامه بکار ببرید البته از تایمر هم میشه ولی مشکلش همون قضیه ای که بالا گفتم ممکنه براش پیش بیاد البته همه اینا پیشنهاد و نظر شخصیمه مطمعنا اقا صادق خودشون اینکاره اند
    سلام
    بنظرم برا رفع این مشکل بهتره از آی سی ds1307 استفاده بشه، آی سی ساعت هست که به صورت سریال به میکرو وصل میشه، میشه در هر لحظه ساعت رو تنظیم کرد و یا خوندش، پس با چندتا دستور شرطی، میتونید در هر زمان کارای مدنظر رو انجام بدید
    یه باطری هم میشه بهش وصل کرد که در صورت قطع برق یا هنگ کردن میکرو، شمارنده از کار نیافته

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


  25. #756
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض

    نقل قول نوشته اصلی توسط amir8668 نمایش پست ها
    سلام
    بنظرم برا رفع این مشکل بهتره از آی سی ds1307 استفاده بشه، آی سی ساعت هست که به صورت سریال به میکرو وصل میشه، میشه در هر لحظه ساعت رو تنظیم کرد و یا خوندش، پس با چندتا دستور شرطی، میتونید در هر زمان کارای مدنظر رو انجام بدید
    یه باطری هم میشه بهش وصل کرد که در صورت قطع برق یا هنگ کردن میکرو، شمارنده از کار نیافته
    ممنون دوست عزیز . البته این به شرطیه که شما از پورت سریال نخواید استفاده کنید و البته یه آی سی جانبی رو بردتون مشکلی ایجاد نکنه ! راستی دستورات راه اندازی rtc میکرو سخت نیست

  26. #757
    کاربر فعال sjafarim آواتار ها
    تاریخ عضویت
    Jan 2008
    نام
    جعفری
    نوشته ها
    225
    تشکر
    93
    تشکر شده 297 بار در 141 پست

    پیش فرض

    rtc داخلی خوبه ولی از 1307 استفاده کنی بهتره، ارتباطش i2c هست و دو تا پایه بیشتر نمیخواد که روی باسش چندین قطعه i2c میتونی همزمان قرار بدی. شبیه سازی i2c روی io معمولی هم خیلی راحته.
    برای راه اندازی rtc داخلی یا 1307 اگر کمک خواستی بگو تا برات کتابخونه بذارم.

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


  28. #758
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض استفاده از تایمر و rtc

    نقل قول نوشته اصلی توسط sjafarim نمایش پست ها
    rtc داخلی خوبه ولی از 1307 استفاده کنی بهتره، ارتباطش i2c هست و دو تا پایه بیشتر نمیخواد که روی باسش چندین قطعه i2c میتونی همزمان قرار بدی. شبیه سازی i2c روی io معمولی هم خیلی راحته.
    برای راه اندازی rtc داخلی یا 1307 اگر کمک خواستی بگو تا برات کتابخونه بذارم.
    آقا خیلی ممنون .
    اگه محبت کنید برای هردوش بذارید ممنون می شم . من یه کتابخونه rtc داشتم ولی موقعی که برنامه رو کامپایل می کردم ، کیل از دستورات داخلش خطا می گرفت ...
    اگه محبت کنید کمی هم تو زمینه تایمر راهنمایی کنید . من نمی تونم چند تا وقفه هم زمان رو راه بندازم و البته تو تنظیم تایمر برای مثلا 1 ثانیه اشکال دارم !

  29. #759
    کاربر فعال sjafarim آواتار ها
    تاریخ عضویت
    Jan 2008
    نام
    جعفری
    نوشته ها
    225
    تشکر
    93
    تشکر شده 297 بار در 141 پست

    پیش فرض

    rtc:
    در فایل کتابخانه پیوست با فراخوانی تابع نوشته شده توش شما میتونی rtc رو برای 1 ثانیه پیکربندی کنی، یعنی هر 1ثانیه برات وقفه تولید میکنه.
    حالا تو فایل stm32f10x_it.c بدنه تابع وقفه rtc اونطوری که دوست داری بنویس:
    کد:
    void RTC_IRQHandler(void)
    {
     	 if (RTC_GetITStatus(RTC_IT_SEC) != RESET)
        {
         /* Clear the RTC Second interrupt */
          RTC_ClearITPendingBit(RTC_IT_SEC);
    //  your code!
         RTC_WaitForLastTask();
    }
    }
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar rtc.rar (845 بایت, 56 نمايش)

  30. کاربران : 2 تشکر کرده اند از شما sjafarim برای ارسال این پست سودمند:


  31. #760
    کاربر فعال sjafarim آواتار ها
    تاریخ عضویت
    Jan 2008
    نام
    جعفری
    نوشته ها
    225
    تشکر
    93
    تشکر شده 297 بار در 141 پست

    پیش فرض

    ds1307:
    از پایه های b 6و 7 برای شبیه سازی i2c استفاده شده:
    بقیه چیزها و توابع گویا و کامله.
    یه مثال از نحوه استفاده کتابخانه ته فایل هدر برات گذاشتم.
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar ds1307.rar (2.7 کیلو بایت, 59 نمايش)

  32. کاربران : 3 تشکر کرده اند از شما sjafarim برای ارسال این پست سودمند:


صفحه 38 از 58 نخستنخست ... 192021222324252627282930313233343536373839404142434445464748495051525354555657 ... آخرینآخرین

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

  1. پاسخ: 515
    آخرين نوشته: 09-12-2018, 12:45
  2. پاسخ: 105
    آخرين نوشته: 02-12-2015, 17:33
  3. Stm32 رو چطوری شروع کنم دوستان ...!
    توسط sarab1 در انجمن stm32
    پاسخ: 18
    آخرين نوشته: 11-10-2013, 18:54
  4. پاسخ: 9
    آخرين نوشته: 01-08-2010, 12:53
  5. انتشار قريب‌الوقوع نخستين به‌روزرساني بزرگ ويندوز سون
    توسط arsalan681 در انجمن اخبار کامپیوتر و IT و مسابقات رباتیک
    پاسخ: 0
    آخرين نوشته: 08-06-2010, 12:43

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

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