NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1104 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 4 از 6 نخستنخست 123456 آخرینآخرین
نمایش نتایج: از 61 به 80 از 114

موضوع: فیلم آموزش STM32F10x (مقدماتی و متوسط)

  1. #61

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

  3. #62
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    من دارم با فیلم آموزشی پیش میرم و gpio رو دارم کار میکنم
    و نیاز به تعریف متغیر eeprom دارم
    چطور میشه متغیر در eepromتعریف کرد ؟
    توی فیلم چیزی در مورد این قضیه گفته نشده برای همین برام سوال شد که چطور باید انجام بدم
    ممنون بابت پاسخ

    - - - Updated - - -

    سخت افزار چطور مشکلی می‌تونه داشته باشه؟
    چی رو باید بررسی کنم که بفهمم مشکل دقیقا چی هست؟

  4. #63
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    این سری میکروها ایتوپرام داخلی ندارند. ولی از فلاش داخلی میکرو می توانید به این منظور استفاده کنید.
    ----------------------------
    استفاده از فلش داخلی میکرو برای نوشتن و خواندن :
    EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers (AN2594) :
    STSW-STM32010 - EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers (AN2594) - STMicroelectronics


    armeducation

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


  6. #64
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض مشکل در gpio

    سلام
    من در برنامه تست GPIO از 4 ورودی دیجیتال و 4 خروجی که به led متصل هست استفاده کردم.
    ورودی ها به PC2~PC5
    و LED ها هم به PC6~PC9 متصل هستن.
    وقتی یک و یا دو کلید را همزمان میزنم عملکرد درسته ولی با زدن کلید سوم (در حالتی که دو کلید قبل وصل هستن) همه LED ها خاموش میشن.
    مشکل چی هست?
    آیا به این مربوط میشه که 2 تا از کلید ها در بایت پایین هستن و دو تای دیگه در بایت بالا ???
    GPIO->CRL
    GPIO->CRH


    این هم کد برنامه

    if ((GPIOC->IDR & (1<<6)) == 0) GPIOC->BSRR = (1<<2) ;
    else GPIOC->BSRR = (1<<18);
    if ((GPIOC->IDR & (1<<7)) == 0) GPIOC->BSRR = (1<<3) ;
    else GPIOC->BSRR = (1<<19);
    if ((GPIOC->IDR & (1<<8)) == 0) GPIOC->BSRR = (1<<4) ;
    else GPIOC->BSRR = (1<<20);
    if ((GPIOC->IDR & (1<<9)) == 0) GPIOC->BSRR = (1<<5) ;
    else GPIOC->BSRR = (1<<21);
    ویرایش توسط zArA3236 : 29-09-2018 در ساعت 12:18 دلیل: تکمیل توضیحات در سوال

  7. #65
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    اینکه اون پایه های خروجی تان و ورودی تان بایستی درست تنظیم کرده باشید که بله وگر نه درست کار نمی کنه.
    دیباگ کنید ببینید ایراد تنظیماتتان کجاست و در دیباگ از روی برد کدام دستورات از شرط ها اجرا میشود

  8. #66
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    پایه ها همه درست تعریف شدن و به صورت تکی هر کلید led معادل خودش رو روشن و خاموش میکنه
    زمانی که کاید اول رو میزنم LED اول روشن
    با زدن کلید دوم led دوم هم روشن میشه
    ولی با زدن کلید سوم دو led قبلی هم خاموش میشن

    تفاوتی توی ترتیب کلیدها هم نداره و به محض زدن کلید سوم این اتفاق میفته.
    من میکروم stm32f103vc هست. چطور میتونم دیباگ کنم؟

    - - - Updated - - -

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    اینکه اون پایه های خروجی تان و ورودی تان بایستی درست تنظیم کرده باشید که بله وگر نه درست کار نمی کنه.
    دیباگ کنید ببینید ایراد تنظیماتتان کجاست و در دیباگ از روی برد کدام دستورات از شرط ها اجرا میشود

    من از نمونه مثال داخل DVD استفاده کردم و کمی تغییرات دادم. کد برنامه به این صورت هست.

    int main (void)
    {
    SystemInit();
    RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; /* Enable GPIOC clock */

    GPIOC->CRL &= ~0xFFFF00; /* PC.2 clear */
    GPIOC->CRL |= 0x222200 ; // PC2 output Max Speed 2 Mz(push-pull)


    GPIOC->CRL &= ~0xFF000000; /* PC6 clear */
    GPIOC->CRL |= 0x88000000 ; // PC6 input with pull up/down


    GPIOC->CRH &= ~0xFF; /* PC8 clear */
    GPIOC->CRH |= 0x88 ; // PC8 input with pull up/down


    //----------------------------------------
    while (1)
    {
    if ((GPIOC->IDR & (1<<6)) == 0) GPIOC->BSRR = (1<<2) ;
    else GPIOC->BSRR = (1<<18);
    if ((GPIOC->IDR & (1<<7)) == 0) GPIOC->BSRR = (1<<3) ;
    else GPIOC->BSRR = (1<<19);
    if ((GPIOC->IDR & (1<<8)) == 0) GPIOC->BSRR = (1<<4) ;
    else GPIOC->BSRR = (1<<20);
    if ((GPIOC->IDR & (1<<9)) == 0) GPIOC->BSRR = (1<<5) ;
    else GPIOC->BSRR = (1<<21);

    }
    }

  9. #67
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    در برنامه میکرو رو به برد آموزشی مثال کویر تغییر دادم و دیباگ کردم.
    مشکلی توی این حالت نبود ولی در عمل ظاهرا نکته دیگه ای داره

  10. #68
    تازه وارد
    تاریخ عضویت
    Dec 2011
    نوشته ها
    1
    تشکر
    4
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    نیاز به یک سورس کد دارم.

    ممکن هستش که بدون خرید فیلم آموزشی مهندس زرکوب سورس برنامه راه اندازی پخش فایل صوتی از فلش خود میکرو یا DAC مربوط به فیلم آموزشی stm32 رو در اختیارم قرار بدین؟

    ویرایش توسط mzarkoob : 30-09-2018 در ساعت 13:24

  11. #69
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    مجدد
    من از اون مشکلی که در GPIO داشتم صرف نظر کردم تا بتونم با آموزش جلو برم.
    یک سوال دیگه دارم در مورد ارتباط سریال
    توی این بخش اشاره کردید که اگر کلاک هسته درست تنظیم نشده باشه، بادریت درست نیست و ارتباط به صورت صحیح عمل نمیکنه.
    به نظرم باید توی این بخش در مورد کلاک هسته بیشتر صحبت کنید. این آموزش مقدماتی هست و من مبتدی از کجا باید بدونم که کلاک هسته رو چطوری باید تنظیم کنم.
    آیا همون مقداری هست که در option for target تنظیم میکنیم هست یا نه؟

    ممنون میشم جواب بدید

  12. #70
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط zArA3236 نمایش پست ها
    سلام
    مجدد
    من از اون مشکلی که در GPIO داشتم صرف نظر کردم تا بتونم با آموزش جلو برم.
    یک سوال دیگه دارم در مورد ارتباط سریال
    توی این بخش اشاره کردید که اگر کلاک هسته درست تنظیم نشده باشه، بادریت درست نیست و ارتباط به صورت صحیح عمل نمیکنه.
    به نظرم باید توی این بخش در مورد کلاک هسته بیشتر صحبت کنید. این آموزش مقدماتی هست و من مبتدی از کجا باید بدونم که کلاک هسته رو چطوری باید تنظیم کنم.
    آیا همون مقداری هست که در option for target تنظیم میکنیم هست یا نه؟

    ممنون میشم جواب بدید
    سوال خوبی پرسید.
    مبحث کلاک کمی تنظیمات و رجیستر زیاد دارد و اصلا مناسب شروع کار آرم آموز نیست. بنابراین برای شروع باید یک سری فرض ها بکنید که این درسته برید جلو تا بعد آشنایی با خود میکرو و راه اندازی چند پریفرال بتوانید در ابتدای فیلم پیشرفته در صورتی که نیاز داشتید تنظیمات کلاک را تغییر دهید. و گرنه وقتی کلاک رو 72 مگ هست و نیاز ندارید برای چی برید تغییر بدید و باهاش آشنا بشوید!؟

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


  14. #71
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    سوال خوبی پرسید.
    مبحث کلاک کمی تنظیمات و رجیستر زیاد دارد و اصلا مناسب شروع کار آرم اموز نیست. بنابراین برای شروع باید یک سری فرض ها بکنید که این درسته برید جلو تا بعد اشنایی با خود میکر و راه اندازی چند پریفرال بتوانید در ابتدای فیلم پیشرفته در صورتی که نیاز داشتید تنظیمات کلاک را تغییر دهید. وگر نه قتی کلاک رو 72 مگ هست و نیاز نیارید برای چی برید تغییر بدید و باهاش آشنا بشوید!؟
    ممنون بابت پاسختون، من فیلم پیشرفته رو هم تهیه گردم ولی هنوز شروع نکردم آموزش های اون رو. در اون بخش بررسی میکنم.
    موردی که هست من با avr کار میکنم و به صورت حرفه ای. خیلی از مباحث رو مقایسه میکنم با اون. مثلا برای کلاک مقایسه میکنم با کریستال خارجی avr. آیا این فرض درسته یا اینکه کریستال خارجی روی برد برای arm کاربردی نداره. چون توی فیلم ها هم متوجه نشدم در موردش صحبتی شده باشه. و اینکه برای استفاده از کریستال خارجی چه تنظیماتی باید انجام بشه.

    و اگر ممکنه در مورد
    مقداری که در option for target تنظیم میکنیم هم یک توضیح بدید.

    سپاس فراوان
    ویرایش توسط zArA3236 : 30-09-2018 در ساعت 13:47

  15. #72
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    شما ابتدا کلاک را از پیشرفته ببینید اجرا کنید بعد اگر سوالی بود مطرح کنید.
    الان این کلاک میکرو از اسلاتور خارجی تنظیم شده.
    چه چیزهایی از
    مقداری که در option for target هست مد نظره؟ تنظیمات زیاد داره و آنچه لازم بوده انجام شده یا پیش فرض بوده است.

  16. #73
    عضو جدید
    تاریخ عضویت
    Jan 2015
    نوشته ها
    10
    تشکر
    3
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    شما ابتدا کلاک را از پیشرفته ببینید اجرا کنید بعد اگر سوالی بود مطرح کنید.
    الان این کلاک میکرو از اسلاتور خارجی تنظیم شده.
    چه چیزهایی از
    مقداری که در option for target هست مد نظره؟ تنظیمات زیاد داره و آنچه لازم بوده انجام شده یا پیش فرض بوده است.
    در تب target مقدار Xttal منظورم هست.

  17. #74

  18. #75
    عضو جدید
    تاریخ عضویت
    Nov 2017
    نوشته ها
    18
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام مهندس جان خوبین ببخشید در فیلم stm در قسمت وقفهexternal interrupt فرمودین که برایفعال کردن پایه A0 از دستور gpio->crh استفاده می کنیم سوالداشتم مگهCRH برای 8 بیت بالا استفاده نمیشه

  19. #76
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    سلام
    فکر کنم این اشتباه را قبلا دوستان ذکر کرده اند.
    بله درسته باید crl تنظیم شود.
    ولی سوال اینجاست که اگر اشتباه تنظیم شده چرا دارد کار می کند!؟
    به خاطر اینکه برای تنظیم پایه برای ورودی وقفه 4 باید قرار داده شود و این همان مقدار پیش فرض رجیستر است. پس تنظیمی هم نکنیم درست است.
    ولی اگر غیر این بود و به اشتباه پایه دیگری را ست می کردیم ان پریفرال درست عمل نمی کرد چون پایه اش درست تنظیم نشده بود.
    دیباگ برای همین است که خط به خط اجرا کنید این چیزها چک کنید اگر دیدید ان تنظیمی که باید بشود نشد به خط مربوطه نگاه کنید ببینید چی گذاشتید.

  20. #77
    عضو جدید
    تاریخ عضویت
    Nov 2017
    نوشته ها
    18
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    باسلام ببخشید مهندس جان من خواستم lcd کاراکتری با stm32f103c8 راه بندازم پایه هاش تغییر دادم طبق توضیحاتتون وای نمایش نمیده lcd مشکلی نداره ممنون میشم راهنماییم کنید



    /*------------------------- Speed dependant settings -------------------------*/


    #define DELAY 20
    /*------------------------- Text LCD size definitions ------------------------*/
    #define LineLen 16 /* Width (in characters) */
    #define NumLines 2 /* Hight (in lines) */
    /*-------------------- LCD interface hardware definitions --------------------*/
    /* PINS:
    - DB4 = PA4
    - DB5 = PA5
    - DB6 = PA6
    - DB7 = PA7


    - RS = PC1
    - RW = PC2
    - E = PC3
    */
    #define DB4 4
    #define PIN_RS (1<<3) //PB.3
    #define PIN_RW (1<<4) //PB.4
    #define PIN_E (1<<5) //PB.5


    #define GPIO_Data GPIOA
    #define GPIO_CTRL GPIOB

    #define PINS_DATA (0x0F << DB4)


    /* Enable Clock for peripheral driving LCD pins */
    #define LCD_CLOCKA_EN RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // enable clock for GPIOA
    #define LCD_CLOCKC_EN RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // enable clock for GPIOB


    /* pin RS setting to 0 or 1 */
    #define LCD_RS(x) (x ? (GPIO_CTRL->BSRR = PIN_RS) : (GPIO_CTRL->BRR = PIN_RS));


    /* pin RW setting to 0 or 1 */
    #define LCD_RW(x) (x ? (GPIO_CTRL->BSRR = PIN_RW) : (GPIO_CTRL->BRR = PIN_RW));


    /* pin E setting to 0 or 1 */
    #define LCD_E(x) (x ? (GPIO_CTRL->BSRR = PIN_E) : (GPIO_CTRL->BRR = PIN_E));


    /* Reading DATA pins */
    #define LCD_DATA_IN ((GPIO_Data->IDR & PINS_DATA) >> DB4) & 0x0F


    /* Writing value to DATA pins */
    #define LCD_CLR_OUT(x) GPIO_Data->BRR = 0xF << DB4;
    #define LCD_DATA_OUT(x) GPIO_Data->BSRR = (x&0x0f) << DB4;


    /* Setting all pins to output mode */
    #define LCD_ALL_DIR_OUT1 GPIO_Data->CRL &= ~0xFFFF0000;\
    GPIO_Data->CRL |= 0x33330000;

    #define LCD_ALL_DIR_OUT2 GPIO_CTRL->CRL &= ~0x00FFF000;\
    GPIO_CTRL->CRL |= 0x00333000;


    /* Setting DATA pins to input mode */
    #define LCD_DATA_DIR_IN GPIO_Data->CRL = (GPIO_Data->CRL & 0xFFFF0000) | 0x44440000;


    /* Setting DATA pins to output mode */
    #define LCD_DATA_DIR_OUT GPIO_Data->CRL &= ~0xFFFF0000;\
    GPIO_Data->CRL |= 0x33333333;


    extern void lcd_init (void);
    extern void lcd_clear (void);
    extern void lcd_putchar (char c);
    extern void set_cursor (int column, int line);
    extern void lcd_print (char *string);
    extern void lcd_bargraph (int value, int size);
    extern void lcd_bargraphXY (int pos_x, int pos_y, int value);
    void lcd_write_cmd (unsigned char c);


    /************************************************** ****************************/

  21. #78
    عضو جدید
    تاریخ عضویت
    Nov 2017
    نوشته ها
    18
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام ببخشید مهندس عزیز میشه بگین مفهوم این خط چی هستش در قسمت lcd در توابش نوشته بودین

    #define LCD_RS(x) (x ? (GPIO_CTRL->BSRR = PIN_RS) : (GPIO_CTRL->BRR = PIN_RS));

  22. #79
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohammadya نمایش پست ها
    سلام ببخشید مهندس عزیز میشه بگین مفهوم این خط چی هستش در قسمت lcd در توابش نوشته بودین

    #define lcd_rs(x) (x ? (gpio_ctrl->bsrr = pin_rs) : (gpio_ctrl->brr = pin_rs));
    این یک ماکرو هست که اگر به ورودی 1 دهید قسمت اول gpio_ctrl->bsrr = pin_rs را اجرا می کند در غیر این صورت صفر باشد قسمت دوم. در فیلم سی به اینت موارد برنامه نیسی پرداخته شده است.

    ---------------------
    در این پست :
    https://t.me/armeducation/80
    این سوال مطرح شد که :
    - عملکرد این ماکرو به چه نحو است :
    #define LED1_ON(x) ((x) ? (LPC_GPIO1->FIOSET = LED1) : (LPC_GPIO1->FIOCLR = LED1));
    در ماکرو می توان به یک عبارت دیفاین شده، یک ورودی شرطی تعریف کرد. به عنوان مثال در عبارت ذکر شده، در صورتی که ورودی x برابر 1 باشد عبارت اول اجرا می شود (یعنی LPC_GPIO1->FIOSET = LED1) و اگر x برابر صفر باشد عبارت دوم اجرا می شود(یعنی LPC_GPIO1->FIOCLR = LED1) . عملگر (x) ? نیز یک if مختصر می باشد. به عنوان نمونه دیگر این ماکرو را در نظر بگیرید و عملکرد آن را بررسی کنید :
    #define LCD_E(x) GPIOC->ODR = (GPIOC->ODR & ~PIN_E) | (x ? PIN_E : 0);
    @armeducation

  23. #80
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohammadya نمایش پست ها
    باسلام ببخشید مهندس جان من خواستم lcd کاراکتری با stm32f103c8 راه بندازم پایه هاش تغییر دادم طبق توضیحاتتون وای نمایش نمیده lcd مشکلی نداره ممنون میشم راهنماییم کنید
    شما باید برا اساس توضیحات پاورپوینت و مثال عملی سری 107 در اینیشیالیز و تابع ارسال و دیفاین های پایه های کنترلی بر اساس سخت افزارتان تغییرات اعمال بکنید.
    حالا اگر کار نکرد و تغییرات برنامتون درست باشه مسلما سخت افزارتون ایراد داره.

صفحه 4 از 6 نخستنخست 123456 آخرینآخرین

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

  1. آموزش رباتیک مقدماتی برای دانش آموزان
    توسط saeid1989 در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 1
    آخرين نوشته: 11-05-2018, 09:53
  2. stm32f10x_cl.h تفاوتش با Stm32f10x.h
    توسط amiroruji72 در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 6
    آخرين نوشته: 10-04-2017, 18:51
  3. پاسخ: 2
    آخرين نوشته: 20-04-2014, 00:14
  4. نحوه راه اندازی sim900 با stm32f10X
    توسط Greatal در انجمن ماژول ها و دستگاه های مخابراتی
    پاسخ: 7
    آخرين نوشته: 06-03-2014, 01:15
  5. آموزش مقدماتی رباتیک در دو بخش مک
    توسط ROBOMAN در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 0
    آخرين نوشته: 05-04-2009, 11:57

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

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