久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

STM32驅動RA8875彩屏正確顯示圖像

作者:日照北京   來源:會員上傳   點擊數:  更新時間:2014年05月20日   【字體:
經過一段時間的折騰,在磕磕絆絆的前進中,終于收獲了成果。我的圖像終于能正常顯示了。 先曬下美圖:
 以下記錄調試過程種遇到的問題。
1、我采用循序將近的方法,首先通過 image2LCD取圖像的二進制文件,配置為:按照默認配置(不選高位在前,RGB(565))
取出圖片的二進制 文件保存下來。做一個上位機軟件通過串口下載到MCU,MCU再寫入到FlashRom。通訊協議自己定的。
(取的圖片文件是低位在前的,上位機軟件可以選擇高位在前。)
注:MCU從Flash中讀取數據再送RA8875顯示是低位在前。  RA8875直接控制FlashRom是高位在前的。
 
圖片下載后,通過MCU從Flash中讀取數據再送RA8875能夠顯示圖像,但速度比較慢,一屏慢慢地刷下來。
初步效果實現了,但這樣的速度是不行的。動手開始第二步嘗試,RA8875控制讀取FlashRom的數據顯示圖片。
把顯示上的PWM口線懸空(注:MCU讀取時PWM要接3.3V)。配置RA8875的控制命令。
void RA8875_DMAReadBlock(uint32_t _usSSAR,uint16_t _usSPWR, uint16_t _usBHR,uint16_t _usBWR,uint16_t _usCURH,uint16_t _usCURV)
{
 uint8_t ucFB=0;
 //區塊數據存儲器直接存取模式.
 
 ucFB = RA8875_ReadReg(0xE0);
 
 
  RA8875_WriteReg(0x30, 0);
  RA8875_WriteReg(0x31, 0);
  RA8875_WriteReg(0x32, 0);
  RA8875_WriteReg(0x33, 0);
 
  RA8875_WriteReg(0x34, (uint8_t)800);
  RA8875_WriteReg(0x35, 800>>8);
  RA8875_WriteReg(0x36, (uint8_t)480);
  RA8875_WriteReg(0x37, 480>>8);
 
   RA8875_WriteReg(0x46, (uint8_t)_usCURH);
  RA8875_WriteReg(0x47, _usCURH>>8);
  RA8875_WriteReg(0x48, (uint8_t)_usCURV);
  RA8875_WriteReg(0x49, _usCURV>>8);
  
 
   
  
 
 //SF_CS0:字庫。 SF_CS1:圖庫。
 //可以用 RA8875_WriteReg(0x05, (1 << 7) | (0 << 6) | (1 << 5) | (1 << 3) | (1 << 2) | (0 << 1) | 0);
RA8875_WriteReg(0x05, (1 << 7) | (0 << 6) | (0 << 5) | (0 << 3) | (1 << 2) | (0 << 1) | 0);

 
  RA8875_WriteReg(0xB0, _usSSAR);
  RA8875_WriteReg(0xB1, _usSSAR>>8);
  RA8875_WriteReg(0xB2, _usSSAR>>16);
 
  RA8875_WriteReg(0xB4, _usBHR);
  RA8875_WriteReg(0xB5, _usBHR>>8);
 
  RA8875_WriteReg(0xB6, _usBWR);
  RA8875_WriteReg(0xB7, _usBWR>>8);
 
  RA8875_WriteReg(0xB8, _usSPWR);
  RA8875_WriteReg(0xB9, _usSPWR>>8);
 
  ucFB = RA8875_ReadReg(0xBF);
  RA8875_WriteReg(0xBF, ucFB|0x03);
 
   //////RA8875_WriteReg(0xBF, ucFB|0x03);

  ucFB = RA8875_ReadReg(0xBF);
  while(ucFB & 0x01==1)
  {
   ucFB = RA8875_ReadReg(0xBF);
  }
//  RA8875_WriteReg(0x46, _usX);
//  RA8875_WriteReg(0x47, _usX >> 8);
//  RA8875_WriteReg(0x48, _usY);
//  RA8875_WriteReg(0x49, _usY >> 8);
經過不斷的嘗試,圖像出來的是亂七八糟的,花的,不過總算出來了,說明RA8875讀取到Flash了。
下面要解決花的問題。在排除了種種因素后,我找到RA8875的一個例子,比對里面的圖片文件,發現圖片數據竟然是“高字節在前”,而我的文件是低字節在前。找到原因,決定嘗試,重新下載圖像,圖像再次出現,有了小小的進步,圖像能看出來了,不過是斜的。
  下面要解決斜的問題。我發現圖像的最后一行顯示了1/3,是不是和圖像的寬度有關,我再次嘗試把調用命令里圖像寬度由原來的800,改為了799。這次圖像正常出來了,又一個大的進步。仍然不理想,圖像中有許多雜色。這讓人頭疼。
        下面開始排除問題。圖像RGB的順序問題嗎?經過反復測試,好像不是,程序問題?也沒找出來。偶然間,我發現上位機下傳圖像很慢,于是監聽了串口通訊,發現竟然有Flash寫入失敗的情況,莫非是flash沒寫進去,造成圖像上的雜色?極有可能,檢查程序也沒找到問題,莫非是flash的寫入速度快?原來spi是2分頻,決定改為4分頻。再次嘗試,下載正常沒有再出現寫入錯誤,下載速度也提高了。運行程序,一副清晰的圖像出來了,心情忽然開朗,一種無形的預約涌上心頭。一副圖像在艱難曲折的道路上出來了。仍然有些美中不足,最下面一行有480個像素沒顯示。留下待解決。
        最后的問題已經解決,調用函數的參數如下:
        
 RA8875_DMAReadBlock(0,0,799,479, SPI1_tu1_ADDR,800, 800,480,0,0);
最后來張完整的照片:

關閉窗口

相關文章

主站蜘蛛池模板: 欧美free性 | 欧美日韩高清 | 波多野结衣电影一区 | 欧美色视频免费 | 91久久国产综合久久 | 亚洲精品一区中文字幕 | 玖玖玖在线 | 亚洲精品www | 精品国产免费人成在线观看 | 特级a欧美做爰片毛片 | 久久在线 | 亚洲一区网站 | 亚洲一区二区三区国产 | 亚洲精品一区中文字幕乱码 | 成人福利视频 | 成人精品免费视频 | 中文字幕在线一区 | 日韩精品视频一区二区三区 | 精品1区2区 | 欧美日韩一卡 | 亚洲欧洲成人av每日更新 | 久久久久久国产精品免费免费男同 | 色视频网站免费 | 国产亚洲成av人片在线观看桃 | 久久久久久国产精品免费免费男同 | 久久影音先锋 | 久久久91精品国产一区二区三区 | 亚洲视频一区二区三区 | 在线视频一区二区 | 伊人精品 | 久久这里只有精品首页 | 亚洲一区二区三区在线视频 | 91超碰在线观看 | 91欧美精品成人综合在线观看 | 国产激情在线 | 国产日韩欧美91 | 国产日韩精品在线 | 中文字幕一二三区 | 超碰免费在线 | 免费看黄视频网站 | 欧美视频三级 |