欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2512|回復: 0
打印 上一主題 下一主題
收起左側

基于AT32F403A開發板的FLASH存儲圖片

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 jinglixixi 于 2020-10-24 18:31 編輯

在AT32F403A的開發板上,為增強存儲的能力,特意配置了EN25QH128這樣一個輔助存儲器,作為第二存儲器,并可參與編程,其接口如圖1所示。
相應引腳的連接關系為:
SPIF_SCK   : PB1
SPIF_CS    : PA8
SPIF_TX    : PB10= MOSI
SPIF_RX    : PB11= MISO
SPIF_HOLD_N : PB6
SPIF_WP_N  : PB7


1W25Q128接口
有了EN25QH128,就不再為存儲器容量小二發愁了,但新的問題也提了出來,該如何消化它那,白放在那豈不是浪費?
要問當今啥最費存儲容量,除了強大規模的程序,就數圖庫和字庫,字庫還好說,畢竟誰也不會天天換字庫,相對講它是固定的。但圖庫就不同了,千圖千樣,非常好存儲容量。所以就用EN25QH128
作個數碼相框吧。
依EN25QH128的存儲容量為128Mbit,即16MB。若以320*240像素的顯示屏來顯示一張圖片,則需要320*240*2=153600B,也就是說它能存放6MB/153600B=40張圖片。

1. EN25QH128的讀寫
要實現數碼相框功能,首先就要從EN25QH128的讀寫開始。
在廠家的例程中,就有EN25QH128讀寫的程序,只不過粗糙了些,被寫成了一個點燈程序,即讀寫一致就點亮指定的LED,缺少一種應用感。
但提供的這個EN25QH128讀寫基礎是十分重要的。
該例程的執行結果如圖2和圖3所示,簡不簡單,驚不驚奇!


圖2 串口的顯示結果



圖3 LED燈的顯示效果

為了進行透明觀察,特將數據寫入過程添加了串口輸出處理,其效果如圖4所示。

圖4按地址顯示數據


2.圖片的存儲
要建立圖庫,首先要將圖片存放到EN25QH128中,方法有2種,一種是通過數組調用內存來完成,具有操作簡單的特點;另一種是使用串行通訊,將圖片文件分批次的傳入并進行相應處理。
這里選擇前者,編寫程序的工作相對較小,但不足是需要多次寫入才能完成。
圖片存儲的主要步驟為:
1)整體尺寸一幅圖片的存儲區,因為EN25QH128是按頁進行擦除的,每頁為4096字節。
一幅圖片要占20頁,200*200*2/4096=19頁,故擦除程序如下:
2)將數組中的數據轉存到FLASH
圖片轉存的程序為:



3)TFT屏驅動
TFT顯示屏所占用的引腳為:
CSPA5
RESTPA6
DCPA7
SDI: PC7
SCK: PA9
LED: PB6
TFT屏驅動的測試效果如圖5所示


圖5 測試TFT屏
4)模擬讀取FLASH顯示圖片
為保證按讀取FLASH數據顯示圖片的正確性,先按讀取FLASH的方式改寫了原圖片顯示函數,其驗證結果如圖6所示。


圖6 以讀取FLASH方式顯示圖片
5)讀取FLASH顯示圖片
顯示一頁FLASH數據的程序如下:




圖7 圖片再現
顯示單張圖片的測試主程序如下:

  1.     int main(void)
  2.     {
  3.            AT32_Board_Init();
  4.            AT32_TFT_Init();
  5.            AT32_key_Init();
  6.            Delay_ms(200);
  7.            TFT_Init();
  8.            LCD_Clear(RED);
  9.            BACK_COLOR=RED;
  10.            POINT_COLOR=WHITE;
  11.            while(GPIO_ReadInputDataBit(GPIOA,
  12.            GPIO_Pins_0)==0);
  13.            LCD_Clear(WHITE);
  14.            show_imageh(10,300,1);  //200*200 * 1     
  15.            UART_Print_Init(115200);
  16.            LCD_ShowString(10,10,"ext.flash  test");
  17.            SPIM_test();
  18.            LCD_ShowString(10,60,"test  SPIM success!");
  19.            while(1);
  20.     }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表