اطلاعیه

Collapse
No announcement yet.

مشکل برنامه های قدیمی و کتابخانه های HAL

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

    مشکل برنامه های قدیمی و کتابخانه های HAL

    درود
    امیدوارم امروز یکی جواب منو بده . من یه برنامه قدیمی SSD1963 دارم که با کیل 4.7 بود و توی اون از کتابخانه های
    Standard Peripheral
    استفاده شده
    حالا پروژه ای درست کردم با نرم افزار STM32CubeMX و کامپایل میکنم مشکلی نیست
    حالا توابع SSD به برنامه اظافه میکنم و وقتی کامپایل میکنم از همه هیکل برنامه اررور میگیره . راه کار چیه ؟؟؟
    آیا راهی هست که نرم افزار STM32CubeMX به جای تولید کد HAL از
    Standard Peripheral استفاده کنه ؟؟؟
    جدیدترین ویرایش توسط sepehr63; ۱۱:۴۲ ۱۳۹۵/۱۰/۰۷.

    #2
    پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

    آقا کسی نیست جواب بده
    یعنی راهی نیست که نرم افزار کیل هم توابع استاندارد بشناسه و هم hal ???
    اینجوری که مسخره هست ؟؟؟

    دیدگاه


      #3
      پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

      سلام، برنامتون رو با کوب اماده کنین، همه پینها دیتا و کنترلی رو هم به صورت خروجی تعریف کنین. فایل کتابخانه ssd رو به پروژه اضاف کنین، قسمتهای اماده سازی پینها اگر داخل کتابخانه بود پاک کنین، تابع تاخیر رو با HAL_Delay جایگذین کنین و همچنین توابع نوشتن دیتا و دستور رو که همون ابتدا کتابخونه هست از spl به hal تبدیل کنین. البته این توابع بخاطر اینکه سرعت بیشتری هم داشته باشن به صورت ادرسهای رجیستری هستن. که در هردوشون یکسان.

      دیدگاه


        #4
        پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

        سلام جناب
        mohammadne . من از همون کتابخانه ای استفاده کردم که شما زحمتشو کشیدید و توی همین سایت گزاشتید
        هر کاری کردم نشد .شرمنده امکانش هست شما زحمتشو بکشید .

        دیدگاه


          #5
          پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

          ببین مهندس حالا که کامپایل کردم و اررور هاشو گرفتم و فایل هگز درست شده پروگرامر این اررور میده بعد از اینکه پروگرام کرد
          مشکل پروگرامر و یا برد نیست چون برنامه قبلی راحت پروگرام میکنه و جواب میده


          این هم برنامه من

          دیدگاه


            #6
            پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

            مشکل برنامه شما اینه که پورت jtag و swd رو در نرم افزار کوب فعال نکردین، حالا بعد از پروگرام کردن میکرو این پورت غیر فعال شده ، شما دوباره کوب رو باز کنین و عیب یابی رو روی jtag 5pin قرار بدین، برنامه رو کامپایل کنین، قبل پروگرام کردن کلید ریست نگه دارین ، وقتی پروگرام شروع شد سریع بردارین.

            دیدگاه


              #7
              پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

              نوشته اصلی توسط mohammadne نمایش پست ها
              مشکل برنامه شما اینه که پورت jtag و swd رو در نرم افزار کوب فعال نکردین، .
              مهندس شرمنده.درست متوجه نشدم.
              نرم افزار کوب چیه . من با کیل پروگرام نمیکنم با جی فلش پروگرام میکنم .

              دیدگاه


                #8
                پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

                نوشته اصلی توسط sepehr63 نمایش پست ها
                مهندس شرمنده.درست متوجه نشدم.
                نرم افزار کوب چیه . من با کیل پروگرام نمیکنم با جی فلش پروگرام میکنم .
                خودتون پست اول گفتین با نرم افزار
                STM32CubeMX (کوب!) کد برنامه رو اماده کردم. حالا دوباره فایل پروژه رو با نرم افزار STM32CubeMX باز کنین و روش عیب یابی رو روی jtag 5pin بذارین.

                دیدگاه


                  #9
                  پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

                  دست شما درد نکنه برنامه پروگرام شد ولی ال سی دی کار نکرد.
                  یه سوالی دستوراتی مثل این

                  GPIOB->CRH = (GPIOB->CRH & 0x00000000) | 0x44444444;

                  با این

                  temp = ((GPIOB->IDR&0xff00)|(GPIOC->IDR&0x00ff));

                  بدون مشکل کامپایل کرد . امکانش هست مال این باشه که این دو تا دستور هم تبدیل به HAL نکردم ؟؟؟

                  دیدگاه


                    #10
                    پاسخ : مشکل برنامه های قدیمی و کتابخانه های HAL

                    نه از اون نیست، اون برا خوندن از SSD1963 هست که نیازی بهش نیست، شما با یه ابزار مثل لاجیک انالیزر یا رجیستر IDR پینها باید بررسی کنی ببینی اون پین واقعا HIGH یا LOW میشه ؟؟؟ ممکنه جای دیگه اشتباه کرده باشی.
                    مثلا این دستورات رو جدا جدا اجرا کن بعدشم برنامه رو نگه دار و وضعیت پینها رو چک کن، ممکنه جایی سیم قطعی داشته باش یا موارد دیگه.
                    کد:
                    LCD_WriteCom(0x0000);
                    LCD_WriteRAM(0x0000);
                    LCD_WriteCom(0x00FF);
                    LCD_WriteRAM(0x00FF);

                    دیدگاه

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