اطلاعیه

Collapse
No announcement yet.

پروژه - راه اندازی LCD 16X2 با STM32F103

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پروژه - راه اندازی LCD 16X2 با STM32F103

    با سلام به همه دوستان

    یه پروژه خیلی آسون ولی چون دیدم توی سایت های فارسی نیست اینجا قرار دادم ...

    در این پروژه LCD 16X2 با STM32F103RET (CORTEX-M3) ARM راه اندازی کردم ...

    اینجا میتونین سورس و کلیپی از این پروژه را دانلود کنید ...

    http://designer2013.blogsky.com/1391/03/28/post-48/
    ARM....

    #2
    پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

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

    دیدگاه


      #3
      پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

      نوشته اصلی توسط the_sab403
      یک سوال
      تنظیم پایه های میکرو برای ال سی در را دقیقا کجا انجام داده اید
      تنظیمات سخت افزاری در هدر فایل اومده. در فایل lcd.h

      کد:
      /*-------- Low level define -----*/
      /**
       * @brief Hardware define for LCD
       */
       
      /* LCD Control pins------------- */
      #define LCD_RS_GPIO_PORT      	GPIOC
      #define LCD_RS_GPIO_CLK        	RCC_APB2Periph_GPIOC 
      #define LCD_RS_GPIO_PIN        	GPIO_Pin_12
      
      #define LCD_RW_GPIO_PORT      	GPIOC
      #define LCD_RW_GPIO_CLK        	RCC_APB2Periph_GPIOC 
      #define LCD_RW_GPIO_PIN        	GPIO_Pin_11
      
      #define LCD_EN_GPIO_PORT      	GPIOC
      #define LCD_EN_GPIO_CLK        	RCC_APB2Periph_GPIOC 
      #define LCD_EN_GPIO_PIN        	GPIO_Pin_10

      دیدگاه


        #4
        پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

        با تشکر فراوان
        در ارتباط با راه اندازی flash آیا اطلاعاتی دارید؟

        دیدگاه


          #5
          پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

          تابع lcd_Init از کجا صدا زده میشود؟

          دیدگاه


            #6
            پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

            در مورد flash باید عرض کنم که اطلاعاتم خیلی کمه و ممکنه اشتباهی راهنماییتون بکنم.

            نوشته اصلی توسط the_sab403
            تابع lcd_Init از کجا صدا زده میشود؟
            تابع lcd_Init در فایل lcd.c تعریف شده و همینی که در زیر تعریفشو گذاشتم.
            و در فایل اصلی مون هم یک بار فراخوانی شده.
            کد:
            *	GLOBAL FUNCTIONS	*
            *********************************
            /**
             * @brief 	Initializes the LCD.
             * @param 	None
             * @retval 	None
             */
            void lcd_Init(void)
            {
            	/* initialize hardware */
            	lcd_Init_HW();
            
            	/* Set 4-bits interface */
            	lcd_Control_Write(0x33);		 
            	Delay(10);
            	lcd_Control_Write(0x32);
            
            	Delay(10);
            
            	/* Start to set LCD function */
            	lcd_Control_Write(LCD_DISP_INIT);
            	
            	/* clear LCD */
            	lcd_Control_Write(LCD_CLEAR_DISPLAY);
            	/* wait 60ms */
            	
            	/* set entry mode */
            	lcd_Control_Write(LCD_INC_MODE);
            	
            	/* set display to on */	
            	lcd_Control_Write(LCD_DISP_ON);	
            	
            	/* move cursor to home and set data address to 0 */
            	lcd_Control_Write(LCD_RETRN_HOME);
            }

            دیدگاه


              #7
              پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

              بسیار ممنون

              دیدگاه


                #8
                پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                نوشته اصلی توسط محمد صادقی فرد (MSF)
                با سلام به همه دوستان

                یه پروژه خیلی آسون ولی چون دیدم توی سایت های فارسی نیست اینجا قرار دادم ...

                در این پروژه LCD 16X2 با STM32F103RET (CORTEX-M3) ARM راه اندازی کردم ...

                اینجا میتونین سورس و کلیپی از این پروژه را دانلود کنید ...

                http://designer2013.blogsky.com/1391/03/28/post-48/
                سلام
                این لایبری یه مشکلی که داشت این بود که نمی شد پایه های دیتا را از هر پایه پورتی که می خواستیم شروع می کردیم
                سعی کردم اصلاحش کنم
                http://ecrs-downlod.persiangig.com/document/lcd2X16.rar/download
                دکتر چمران در 1311 در تهران متولد شد
                وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                دیدگاه


                  #9
                  پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                  نوشته اصلی توسط 011
                  سلام
                  این لایبری یه مشکلی که داشت این بود که نمی شد پایه های دیتا را از هر پایه پورتی که می خواستیم شروع می کردیم
                  سعی کردم اصلاحش کنم
                  http://ecrs-downlod.persiangig.com/document/lcd2X16.rar/download
                  فایل c. باید این تغییرات را بدیم
                  کد:
                  void lcd_Print_Data(char * data)
                  {
                  	register uint16_t i;
                  	/* check to make sure we have a good pointer */
                  	if (!data) return;
                  	
                  	/* print data */
                  	for(i=0; data[i] ; i++)
                  	{
                  		lcd_Data_Write(data[i]);
                  		delay(100);
                  	}
                  }
                  
                  در قسمت بعد هم
                  
                  void lcd_GotoXY(uint16_t x, uint16_t y)
                  {
                  	register uint16_t DDRAMAddr;
                  
                  	// remap lines into proper order
                  	switch(y)
                  	{
                  	case 0: DDRAMAddr = LCD_LINE0_ADDR+x; break;
                  	case 1: DDRAMAddr = LCD_LINE1_ADDR+x; break;
                  	//case 2: DDRAMAddr = LCD_LINE2_ADDR+y; break;	// for LCD 16x4 or 20x4 only
                  	//case 3: DDRAMAddr = LCD_LINE3_ADDR+y; break;
                  	default: DDRAMAddr = LCD_LINE0_ADDR+x;
                  	}
                  
                  	// set data address
                  	lcd_Control_Write(LCD_DD_RAM_PTR | DDRAMAddr);
                  	delay(50);
                  }
                  فایل h. هم بدین صورت
                  کد:
                  void lcd_GotoXY(uint16_t x, uint16_t y);
                  // prints a series of bytes/intacters to the display
                  void lcd_Print_Data(char* data);
                  دکتر چمران در 1311 در تهران متولد شد
                  وي در زمان اقامت در آمريکا انجمن اسلامي آمريکا را تأسيس کرد که منجر به قطع بورسيه وي توسط شاه شد.
                  او با اينکه يکي از دانشمندان مطرح آمريکا به حساب مي آمد بدون توجه به مدرک به مصر رفت و آموزش نظامي ديد.

                  دیدگاه


                    #10
                    پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                    سلام
                    این لایبری یه مشکلی که داشت این بود که نمی شد پایه های دیتا را از هر پایه پورتی که می خواستیم شروع می کردیم
                    سعی کردم اصلاحش کنم
                    http://ecrs-downlod.persiangig.com/document/lcd2X16.rar/download
                    ممنون دوست عزیز،
                    ولی فایل رو دانلود کردم خطا داد، میشه لطفاً یه چکی بکنید ببینید درست rar شده؟
                    با تشکر

                    «پشتکار» «پشتکار» «پشتکار»

                    دیدگاه


                      #11
                      پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                      سلام. روزتون بخیر
                      من می خوام با میکرو stm32f746ng (یا حتی f1) یک ال سی دی تاچ رو راه اندازی کنم و محیط گرافیکی مثل منو روی ال سی دی داشته باشم. کسی هست در باره این مطلب کمکی به من بکنه؟ یا حداقل به من توی راه اندازی ال سی کمک کنه؟

                      دیدگاه


                        #12
                        پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                        سلام فایل Rar مشکل داره

                        دیدگاه


                          #13
                          پاسخ : پروژه - راه اندازی LCD 16X2 با STM32F103

                          نوشته اصلی توسط ayoubkazemi نمایش پست ها
                          سلام فایل Rar مشکل داره
                          من یک کتابخونه دانلود کردم از اینترنت ( یعنی خودم اونو ننوشتم)، ولی برای هر میکرویی که ازش استفاده میکنم تغییرات مناسبی میدم و اون هم کار میکنه.
                          برای STM32 هم تغییراتی بهش دادم که ال سی دی رو 4 بیتی راه میندازه که تو پایه صرفه جویی میشه.
                          لینک دانلود کتابخانه LCD کاکتری در مد 4 بیتی برای STM32 ( لینک )
                          کار کردن باهاشم خیلی سادس، فایل هارو توی پوشه SRC کپی کنید، بعد توی برنامه کتابخونه رو اضافه کنید.
                          کد:
                          #include "lcd.h"


                          درضمن برای پایه های lcd هم کافیه توی خود qube هر پایه که به ال سی دی وصل هستش رو خروجی تعریف کنید، و روی اون پایه های label قرار بدین، این label ها هم باید به صورت زیر باشه:

                          دستورات lcd هم مثله همه کتابخونه های دیگه به شکل زیره:

                          کد:
                          void lcd_command(char lcd_command_value);
                          void lcd_write(unsigned char lcd_write_value);
                          void lcd_putchar(char lcd_putcharr);
                          void lcd_puts(char *str);
                          void lcd_init(void);
                          void lcd_clear(void);
                          void lcd_gotoxy(unsigned char lcd_x_position, unsigned char lcd_y_position);
                          void lcd_cursor(unsigned char lcd_cursor_value);
                          البته فقط اگه از میکرویی غیر از F1 استفاده میکنید، باید یه تغییری توی lcd.h بدین و این Include رو متاسب با میکروتون تغییر بدین.


                          موفق باشید.
                          توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
                          همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
                          https://www.youtube.com/@aKaReZa75​

                          دیدگاه

                          لطفا صبر کنید...
                          X