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

موضوع: نمایش فایل JPG از روی SD با emWin

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2016
    نوشته ها
    29
    تشکر
    3
    تشکر شده 7 بار در 6 پست

    پیش فرض نمایش فایل JPG از روی SD با emWin

    سلام
    من بوسیله کتابخانه fatfs یه فابل JPEG رو از روی مموری باز میکنم و روی ال سی دی نشون میدم ولی بعد از چند ثانیه میکرو ریست میشه دقیقا وقتی دستور
    GUI_JPEG_DrawEx(_GetData, &Image_File,0, 0); رو حذف میکنم دیگه ریست نمیشه میخواستم بدونم دلیلش چی میتونه باشه
    ممنون

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

  3. #2
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    با چه بوردی کار مبکنی ؟؟؟؟
    متغیر Image تو کجای حافظه قرار داره ؟
    اگه تو فضای رم داخلی باشه احتمال هنگ یا ریست هست ....
    اگه بوردت رم خارجی داره ... متغیر image رو ببر تو فضای رم خارجی ....
    ویرایش توسط microprocesor_2002 : 14-06-2016 در ساعت 14:55

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2016
    نوشته ها
    29
    تشکر
    3
    تشکر شده 7 بار در 6 پست

    پیش فرض

    بله فکر کنم دلیلش همین باشه خودم برد زدم و متاسفانه براش رم خارجی در نظر نگرفتم
    از میکروی stm32f407vgt6 استفاده میکنم

  5. #4
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    stm32f407vgt6 این میکرو 192 کیلو بایت رم داره .... برای عکس های JPG مثلا 640 * 480 نباید رم کم بیاره .....
    میخوای کدی رو که نوشتی بزار بینم ....
    ویرایش توسط microprocesor_2002 : 15-06-2016 در ساعت 00:23

  6. #5
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2016
    نوشته ها
    29
    تشکر
    3
    تشکر شده 7 بار در 6 پست

    پیش فرض

    من 100 کیلو بایت به emwin اختصاص دادم با ال سی دی 7 اینچ وssd1963

    اینم برنامه main


    /* Includes ------------------------------------------------------------------*/
    #include "stm32f4xx_hal.h"
    #include "fatfs.h"
    #include "GUI.h"
    #include "WM.h"




    /* Private variables ---------------------------------------------------------*/
    CRC_HandleTypeDef hcrc;


    IWDG_HandleTypeDef hiwdg;


    RTC_HandleTypeDef hrtc;


    SD_HandleTypeDef hsd;
    HAL_SD_CardInfoTypedef SDCardInfo;
    DMA_HandleTypeDef hdma_sdio;


    SPI_HandleTypeDef hspi1;


    TIM_HandleTypeDef htim1;


    UART_HandleTypeDef huart2;


    SRAM_HandleTypeDef hsram1;






    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    void Error_Handler(void);
    static void MX_GPIO_Init(void);
    static void MX_DMA_Init(void);
    static void MX_FSMC_Init(void);
    static void MX_CRC_Init(void);
    static void MX_SPI1_Init(void);
    static void MX_USART2_UART_Init(void);
    static void MX_RTC_Init(void);
    static void MX_IWDG_Init(void);
    static void MX_SDIO_SD_Init(void);
    static void MX_TIM1_Init(void);


    void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);





    /* Private function prototypes -----------------------------------------------*/
    FATFS SDFatFs; /* File system object for SD disk logical drive */
    FIL MyFile; /* File object */
    char SDPath[4]; /* SD disk logical drive path */
    FRESULT res; /* FatFs function common result code */
    uint32_t byteswritten, bytesread; /* File write/read counts */
    uint8_t wtext[] = "maka niahoon"; /* File write buffer */
    uint8_t rtext[100];
    static uint8_t _acBuffer[2048];
    FIL Image_File;


    /*
    * @brief called one time at the beginning to retrieve overhead
    * information and, after this, several times to retrieve the actual image data
    * @param p: application defined void pointer
    * @param ppData: pointer to the location the requested data resides in
    * @param NumBytesReq: number of requested bytes.
    * @param Off: defines the offset to use for reading the source data
    * @retval The number of bytes which were actually read (int)
    */
    static int _GetData(void * p, const U8 ** ppData, unsigned NumBytesReq, U32 Off)
    {
    unsigned int NumBytesRead;
    FIL * phFile;

    phFile = (FIL *)p;


    /* Check buffer size */
    if (NumBytesReq > sizeof(_acBuffer)) {
    NumBytesReq = sizeof(_acBuffer);
    }

    /* Set file pointer to the required position */
    f_lseek(phFile, Off);


    /* Read data into buffer */
    f_read(phFile, _acBuffer, NumBytesReq, &NumBytesRead);


    /* Set data pointer to the beginning of the buffer */
    *ppData =(unsigned char *) _acBuffer;


    /* Return number of available bytes */
    return NumBytesRead;
    }





    int main(void)
    {






    /* MCU Configuration----------------------------------------------------------*/


    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();


    /* Configure the system clock */
    SystemClock_Config();


    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_DMA_Init();
    MX_FSMC_Init();
    MX_CRC_Init();
    MX_SPI1_Init();
    MX_USART2_UART_Init();
    MX_RTC_Init();
    MX_IWDG_Init();
    MX_SDIO_SD_Init();
    MX_TIM1_Init();
    MX_FATFS_Init();

    HAL_Delay(500);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); //SET to high the reset pin of ssd1963


    GUI_Init();
    WM_Init();
    WM_SetCreateFlags(WM_CF_MEMDEV);

    GUI_DispStringHCenterAt("WELLCOM", 400, 150);
    GUI_Delay(1000);
    GUI_Clear();
    GUI_Delay(1000);




    f_mount(&SDFatFs, (TCHAR const*)SDPath, 0);



    f_open(&Image_File, "film.JPG", FA_READ);
    GUI_JPEG_DrawEx(_GetData, &Image_File,0, 0);


    f_close(&Image_File);








    while (1)
    {


    GUI_Delay(100);
    }


    }

  7. #6
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    به این تابع احساس میکنم اشتباه مقدار دادی ...
    1- باید مقدار Handler رو به تابع بدی ... که ندادی ....
    2- حتی تابعی که Handle رو میگیره نمیبینم ....
    3- فکر کنم باید سایز متغیر فایل هم بدی ....
    این مال منه :
    hItem_Pic = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
    IMAGE_SetJPEG(hItem_Pic,Cam_Buff,mySize);

    خط اول Handle رو میگیره .....
    خط دوم hItem_Pic مقدار Handle هستش
    Cam_Buff بافر مورد نظر
    mySize هم سایز عکس که از تابع f_open میاد

    البته من از 1788 استفاده میکنم ولی فکر نمیکنم EMWINها با هم فرق داشته باشه ....

    - - - Updated - - -

    من اینطوری یه عکس JPG رو نشون میدم .... البته من از frame تو برنامه استفاده کردم ....

    کد:
    res = f_open( &fsrc , "0:/MAIN1.jpg" , FA_READ | FA_OPEN_EXISTING ) ; 
    res = f_read(&fsrc,Cam_Buff,fsrc.fsize ,&br);
    res = f_close(&fsrc);
    
    hItem_Pic = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0); 
    IMAGE_SetJPEG(hItem_Pic,Cam_Buff,fsrc.fsize);
    ویرایش توسط microprocesor_2002 : 15-06-2016 در ساعت 10:06

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


  9. #7
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2016
    نوشته ها
    29
    تشکر
    3
    تشکر شده 7 بار در 6 پست

    پیش فرض

    دوست من شما مطمئنی عکس رو روی sd ذخیره کردی من فکر کنم شما عکس رو روی حافظه nand flash روی برد 1788 ذخیره کردی چون برای نمایش از روی sd باید از تابع IMAGE_SetJPEGEx استفاده کنی که اون هم مشخصات عکس رو از تابه Getdata بدست میاره . توی این پست راجع بهش صحبت شده
    آموزش emWin - صفحه 19

    ولی من روش شما رو هم امتحان میکنم. خبرش رو میدم.
    ممنون

  10. #8
    مدیر انجمن
    تاریخ عضویت
    Jul 2007
    نام
    امید آزاده
    نوشته ها
    357
    تشکر
    177
    تشکر شده 279 بار در 133 پست

    پیش فرض

    سلام ...
    بله کاملا مطمئنم از روی میکرو ای دی هستش ...
    البته من از فرم استفاده کردم .....
    از این حالت
    hItem_Pic = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
    IMAGE_SetJPEG(hItem_Pic,Cam_Buff,fsrc.fsize);

    فکر کنم وقتی میتونی استفاده کنی که از تو صفحه از فرم استفاده کنی
    لینک زیر رو ببین :
    پرشین گیگ
    کار خودمه ... یک تابلو برق الکترونیک ....
    ویرایش توسط microprocesor_2002 : 15-06-2016 در ساعت 20:57

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


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

  1. رنگ بک گراند نوشته ها در emwin
    توسط allsat در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 05-01-2016, 15:09
  2. نوشتن gui برای arm سری rf4 با emwin
    توسط aryaeei در انجمن مباحث کلی ARM
    پاسخ: 0
    آخرين نوشته: 21-09-2015, 10:05
  3. usb و emwin
    توسط vahid_22002 در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 08-08-2015, 21:13
  4. emwin با vnc
    توسط hariri2 در انجمن LPC series (NXP)
    پاسخ: 2
    آخرين نوشته: 21-11-2014, 20:58
  5. پاسخ: 2
    آخرين نوشته: 03-04-2014, 21:52

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

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