{"id":239,"date":"2017-11-23T00:08:17","date_gmt":"2017-11-22T23:08:17","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=239"},"modified":"2023-03-04T23:52:58","modified_gmt":"2023-03-04T22:52:58","slug":"20-fatfs_picture-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/20-fatfs_picture-library-stm32f4\/","title":{"rendered":"20-FATFS_Picture-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/19-i2c_m24c02-library-stm32f4\/\" title=\"19-I2C_M24C02-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 19-I2C_M24C02-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/21-adc_injected-group-library-stm32f4\/\" title=\"21-ADC_Injected-Group-Library (STM32F4)\">21-ADC_Injected-Group-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Diese Library dient zum anzeigen von Bildern, die auf einer SD-Karte gespeichert sind.<\/p>\n<p>Im Moment werden 3 Bildformate unterst\u00fctzt :<br \/>\n1. = 16Bit (RGB565) \u2013 Image-Files (*.img)<br \/>\n2. = Bitmap Files (BMP, 24bpp, unkomprimiert) (*.bmp)<br \/>\n3. = JPG Files (*.jpg)<\/p>\n<p>F\u00fcr das Format Nr. 1 habe ich das PC-Programm \u201c<a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=140#P02\">ImageGenerator<\/a>\u201d geschrieben. Das wandelt beliebige BMP-Files in das RGB565-Format um.<\/p>\n<p><span style=\"text-decoration: underline;\">Geschwindigkeit :<\/span><br \/>\nEin Image-Bild mit 240\u00d7320 Pixel (16bpp) wird in ca. 100ms gezeichnet<br \/>\nEin BMP-Bild mit 240\u00d7320 Pixel (24pbb) wird in ca. 165ms gezeichnet<br \/>\nEin JPG-Bild mit 240\u00d7320 Pixel wird in ca. 580ms gezeichnet<\/p>\n<p><span style=\"text-decoration: underline;\">Speicherverbrauch :<\/span><br \/>\nEin Image-Bild mit 240\u00d7320 Pixel braucht 153.600 Bytes<br \/>\nEin BMP-Bild mit 240\u00d7320 Pixel braucht\u00a0230.454 Bytes<br \/>\nEin JPG-Bild mit 240\u00d7320 Pixel braucht ca. 15.323 Bytes<\/p>\n<p>Es wird f\u00fcr die Anzeige die LIB :\u00a0\u201c<a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=211\">STM32_UB_LCD_ST7783<\/a>\u2033 und f\u00fcr die SD-Karte die LIB \u201c<a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=225\">STM32_UB_FATFS<\/a>\u201d ben\u00f6tigt.<\/p>\n<p><strong><strong>Beispielbild :<\/strong><\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/emo_pic.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-887\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/emo_pic-300x179.jpg\" alt=\"emo_pic\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : keine\r\nBenutzte Librarys : STM32_UB_LCD_ST7783, STM32_UB_FATFS<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  PICTURE_OK =0,\r\n  PICTURE_MEDIA_ERR,\r\n  PICTURE_FILE_ERR,\r\n  PICTURE_SIZE_ERR,\r\n  PICTURE_ID_ERR,\r\n  PICTURE_HEAD_ERR,\r\n  PICTURE_WIDTH_ERR,\r\n  PICTURE_HEIGHT_ERR,\r\n  PICTURE_BPP_ERR,\r\n  PICTURE_COMPR_ERR,\r\n}PICTURE_ERR_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">PICTURE_ERR_t UB_Picture_DrawImage(const char* name, uint16_t xpos, uint16_t ypos); \/\/ zeichnet ein Image-File von SD-Karte\r\nPICTURE_ERR_t UB_Picture_DrawBmp(const char* name, uint16_t xpos, uint16_t ypos);   \/\/ zeichnet ein BMP-File von SD-Karte\r\nPICTURE_ERR_t UB_Picture_DrawJpg(const char* name, uint16_t xpos, uint16_t ypos);   \/\/ zeichnet ein JPG-File von SD-Karte<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 13.03.2013\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.0\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der Picture Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_picture.h\"\r\n\r\nint main(void)\r\n{\r\n  FATFS_t check_fat;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ Init vom LCD (Landscape Mode)\r\n  UB_LCD_Init();\r\n  UB_LCD_SetMode(LANDSCAPE);\r\n  UB_LCD_FillScreen(RGB_COL_GREEN);\r\n\r\n  \/\/ Init der FATFS-Lib\r\n  UB_Fatfs_Init();\r\n\r\n  \/\/ SD-mounten\r\n  check_fat=UB_Fatfs_Mount(MMC_0);\r\n  if(check_fat==FATFS_OK) {\r\n    \/\/ Windows-BMP von SD-Karte laden\r\n    \/\/ und auf dem Display anzeigen\r\n    UB_Picture_DrawBmp(\"emo.bmp\",0,0);\r\n\r\n    UB_Fatfs_UnMount(MMC_0);\r\n  }\r\n\r\n  while(1)\r\n  {\r\n\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/ub_stm32f4_fatfs_picture_v103.zip\">ub_stm32f4_fatfs_picture_v103<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/04\/Demo_20_FATFS_Picture.zip\">Demo_20_FATFS_Picture<\/a><\/p>\n<p>Hier der Link zu dem PC-Programm :<\/p>\n<p><a title=\"PC-Programme von mir\" href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=140\">PC-Programme<\/a><\/p>\n<h3 id=\"comments-title\">3 Antworten auf <em>20-FATFS_Picture-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-706\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-706\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. Juli 2013 um 13:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hinweis: man muss unbedingt auf die Orientierung achten, 240\u00d7320 sind nicht 320\u00d7240<br \/>\nBMPs funktionieren problemlos, bei JPGs ist die Lib etwas zickig und macht bei mir manchmal Anzeigefehler rein (notfalls mit Paint in BMP wandeln), IMG-Files hatte ich keine leider da.<\/p>\n<p>Bitte \u00fcberpr\u00fcfe den Imagegenerator Downloadlink, bei mir f\u00fchrt er ins Leere.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-707\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-707\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. Juli 2013 um 17:38<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke f\u00fcr den Hinweis, Link habe ich aktuallisiert.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1155\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1155\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/bd62e45cef2cf945971dd4dbe3135d5e?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Pappnase<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">15. Dezember 2013 um 04:43<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>\u00c4ndere bitte mal das \u201cunkompremiert\u201d nach \u201cunkomprimiert\u201d. Danke.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Diese Library dient zum anzeigen von Bildern, die auf einer SD-Karte gespeichert sind. Im Moment werden 3 Bildformate unterst\u00fctzt : 1. = 16Bit (RGB565) \u2013 Image-Files (*.img) 2. = Bitmap Files (BMP, 24bpp, unkomprimiert) (*.bmp) 3. = JPG Files (*.jpg) &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/20-fatfs_picture-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":20,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[152,9,7],"class_list":["post-239","page","type-page","status-publish","hentry","category-stm32f4","tag-fatfs","tag-library","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":9,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/239\/revisions"}],"predecessor-version":[{"id":3670,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/239\/revisions\/3670"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}