4回答

0收藏

[评测分享] DFR0669显示屏试用

#板卡评测 #板卡评测 3258 人阅读 | 4 人回复 | 2022-09-25

本帖最后由 az158 于 2022-9-25 16:46 编辑

前不久拿到了DFRobot家的DFR0669显示屏,今天做一个简单的试用。

板子做工针不戳,黑板加沉金很有质感(排针是我焊的,屏幕本身提供了排针跟排线两种连接方式,可以按需选择)。



拿到板卡先找资料,去了一趟DFRobot官网,发现他家资料是做的真不错,描述很清晰,而且资料也很全,不过,怎么全是针对Arduino的啊,对我太不友好了(手上一块Arduino都没有),不过提供的资料很全,就写一下在STM32下的驱动吧。

掏出我的STM32WB55的小板卡一通乱写,突然发现能用模拟SPI跑,但是用硬件SPI不行。试着对硬件SPI降频,好了。
然后优化了一下,效果如下,刷屏感很重。


换个角度拍点图(能看到触摸屏跟屏幕配合不是很好,上面没遮住,下面多遮了,不过无伤大雅),可视角度还不错。



看了看手册,这屏的驱动芯片是ILI9488,这玩意SPI模式下跑不快,一般这颗驱动芯片的屏都是走并口驱动。试了试SPI最多也就能跑到20MHz,这可比ST7789低多了。不过ST7789最大支持的分辨率320x240,这块屏是480x320,没法用。


总体试用下来还是很满意的,资料很全,屏幕可视角度也不错,屏幕细腻度也挺好,最大的问题就是这分辨率用SPI驱,而且频率上不去,效果不太满意。但是想想,这个产品本身就是面对Arduino用户开发的,对于他们来说这块屏提供了更多的选择,能提供更好的效果,在开发的时候多用局部刷新,整体效果还是能做到不错的。

最后附上屏幕的初始化程序:
  1. #define SCLK_H()  HAL_GPIO_WritePin(SCLK_GPIO_Port, SCLK_Pin, GPIO_PIN_SET);
  2. #define SCLK_L()  HAL_GPIO_WritePin(SCLK_GPIO_Port, SCLK_Pin, GPIO_PIN_RESET);

  3. #define MOSI_H()  HAL_GPIO_WritePin(MOSI_GPIO_Port, MOSI_Pin, GPIO_PIN_SET);
  4. #define MOSI_L()  HAL_GPIO_WritePin(MOSI_GPIO_Port, MOSI_Pin, GPIO_PIN_RESET);

  5. #define CS_H()  HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
  6. #define CS_L()  HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);

  7. #define RES_H()  HAL_GPIO_WritePin(RES_GPIO_Port, RES_Pin, GPIO_PIN_SET);
  8. #define RES_L()  HAL_GPIO_WritePin(RES_GPIO_Port, RES_Pin, GPIO_PIN_RESET);

  9. #define DC_H()  HAL_GPIO_WritePin(DC_GPIO_Port, DC_Pin, GPIO_PIN_SET);
  10. #define DC_L()  HAL_GPIO_WritePin(DC_GPIO_Port, DC_Pin, GPIO_PIN_RESET);


  11. uint8_t SPI1_ReadWriteByte(uint8_t TxData)
  12. {
  13.         uint8_t Rxdata;
  14.         HAL_SPI_TransmitReceive(&hspi1,&TxData,&Rxdata,1, 1000);      
  15.         return Rxdata;                              //返回收到的数据               
  16. }

  17. void LCD_ILI9488_CMD(unsigned char val)
  18. {
  19.     unsigned char count = 0;
  20.     DC_L();
  21.     CS_L();
  22.     SPI1_ReadWriteByte(val);
  23. //    for(count = 0 ; count < 8 ; count++)
  24. //    {
  25. //        SCLK_L();
  26. //        if((val&0x80)==0x80)
  27. //        {
  28. //            MOSI_H();
  29. //        }
  30. //        else
  31. //        {
  32. //            MOSI_L();
  33. //        }
  34. //        SCLK_H();
  35. //        val=val<<1;
  36. //    }
  37.     CS_H();
  38. }

  39. void LCD_ILI9488_INDEX(unsigned char val)
  40. {
  41.     unsigned char count = 0;
  42.     DC_H();
  43.     CS_L();
  44.     SPI1_ReadWriteByte(val);
  45. //    for(count = 0 ; count < 8 ; count++)
  46. //    {
  47. //        SCLK_L();
  48. //        if((val&0x80)==0x80)
  49. //        {
  50. //            MOSI_H();
  51. //        }
  52. //        else
  53. //        {
  54. //            MOSI_L();
  55. //        }
  56. //        SCLK_H();
  57. //        val=val<<1;
  58. //    }
  59.     CS_H();
  60. }

  61. void LCD_Init(void)
  62. {
  63.     RES_H();
  64.     HAL_Delay(1);
  65.     RES_L();
  66.     HAL_Delay(10);
  67.     RES_H();
  68.     HAL_Delay(120);

  69.     LCD_ILI9488_CMD(0XF7);   
  70.     LCD_ILI9488_INDEX(0xA9);
  71.     LCD_ILI9488_INDEX(0x51);
  72.     LCD_ILI9488_INDEX(0x2C);
  73.     LCD_ILI9488_INDEX(0x82);
  74.    
  75.     LCD_ILI9488_CMD(0xC0);
  76.     LCD_ILI9488_INDEX(0x11);
  77.     LCD_ILI9488_INDEX(0x09);
  78.      
  79.     LCD_ILI9488_CMD(0xC1);
  80.     LCD_ILI9488_INDEX(0x41);
  81.    
  82.     LCD_ILI9488_CMD(0xC5);
  83.     LCD_ILI9488_INDEX(0x00);
  84.     LCD_ILI9488_INDEX(0x0A);
  85.     LCD_ILI9488_INDEX(0x80);
  86.    
  87.     LCD_ILI9488_CMD(0xB1);   //Frame rate 60HZ  
  88.     LCD_ILI9488_INDEX(0xB0);
  89.     LCD_ILI9488_INDEX(0x11);
  90.    
  91.     LCD_ILI9488_CMD(0xB4);
  92.     LCD_ILI9488_INDEX(0x02);
  93.    
  94.     LCD_ILI9488_CMD(0xB6); //RGB/MCU Interface Control
  95.     LCD_ILI9488_INDEX(0x02);
  96.     LCD_ILI9488_INDEX(0x22);
  97.    
  98.     LCD_ILI9488_CMD(0xB7);
  99.     LCD_ILI9488_INDEX(0xc6);

  100.     LCD_ILI9488_CMD(0XBE);
  101.     LCD_ILI9488_INDEX(0x00);
  102.     LCD_ILI9488_INDEX(0x04);
  103.    
  104.     LCD_ILI9488_CMD(0xE9);
  105.     LCD_ILI9488_INDEX(0x00);
  106.    
  107.     LCD_ILI9488_CMD(0x36);
  108.     LCD_ILI9488_INDEX(0x08);

  109.     LCD_ILI9488_CMD(0x3A); //Interface Mode Control
  110.     LCD_ILI9488_INDEX(0x66);
  111.    
  112.     LCD_ILI9488_CMD(0xE0);
  113.     LCD_ILI9488_INDEX(0x00);
  114.     LCD_ILI9488_INDEX(0x07);
  115.     LCD_ILI9488_INDEX(0x10);
  116.     LCD_ILI9488_INDEX(0x09);
  117.     LCD_ILI9488_INDEX(0x17);
  118.     LCD_ILI9488_INDEX(0x0b);
  119.     LCD_ILI9488_INDEX(0x41);
  120.     LCD_ILI9488_INDEX(0x89);
  121.     LCD_ILI9488_INDEX(0x4b);
  122.     LCD_ILI9488_INDEX(0x0a);
  123.     LCD_ILI9488_INDEX(0x0c);
  124.     LCD_ILI9488_INDEX(0x0e);
  125.     LCD_ILI9488_INDEX(0x18);
  126.     LCD_ILI9488_INDEX(0x1b);
  127.     LCD_ILI9488_INDEX(0x0f);  
  128.      
  129.     LCD_ILI9488_CMD(0xE1);
  130.     LCD_ILI9488_INDEX(0x00);
  131.     LCD_ILI9488_INDEX(0x17);
  132.     LCD_ILI9488_INDEX(0x1a);
  133.     LCD_ILI9488_INDEX(0x04);
  134.     LCD_ILI9488_INDEX(0x0e);
  135.     LCD_ILI9488_INDEX(0x06);
  136.     LCD_ILI9488_INDEX(0x2f);
  137.     LCD_ILI9488_INDEX(0x45);
  138.     LCD_ILI9488_INDEX(0x43);
  139.     LCD_ILI9488_INDEX(0x02);
  140.     LCD_ILI9488_INDEX(0x0a);
  141.     LCD_ILI9488_INDEX(0x09);
  142.     LCD_ILI9488_INDEX(0x32);
  143.     LCD_ILI9488_INDEX(0x36);
  144.     LCD_ILI9488_INDEX(0x0f);
  145.      
  146.     LCD_ILI9488_CMD(0x11);
  147.     HAL_Delay(120);
  148.     LCD_ILI9488_CMD(0x20);
  149.     LCD_ILI9488_CMD(0x29);
  150. }
复制代码






分享到:
回复

使用道具 举报

回答|共 4 个

倒序浏览

沙发

xiaoshen-372360

发表于 2022-9-27 09:43:04 | 只看该作者

收藏一下,我也来试一下看看,哈哈哈哈
回复 支持 反对

使用道具 举报

板凳

xiaoshen-372360

发表于 2022-9-30 15:31:37 | 只看该作者

大佬的代码可以共享一下么?
回复 支持 反对

使用道具 举报

地板

eefocus_3816959

发表于 2022-10-12 07:48:23 来自手机 | 只看该作者

还有活动吗?
回复 支持 反对

使用道具 举报

5#

eefocus_3918718

发表于 2023-5-9 17:59:22 | 只看该作者

大佬的代码可以共享一下么?你是在STM32CUBEIDE上弄的吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条