[开发板与模块] 【ESK32-30519 + ESK32-21001测评】+1.8寸TFT

[复制链接]
 楼主| 夜声 发表于 2022-9-11 16:24 | 显示全部楼层 |阅读模式
<
本帖最后由 eltonchang2001 于 2022-11-9 13:57 编辑

本次使用的是1.8寸的TFT,以前比较喜欢用0.96寸的OLED,使用OLED的话,显示数字、汉字这些基本功能可以满足了,但是OLED只有单色,在某些场合用着还是不够。正好手上有一个之前9.9买的TFT,在这里使用模拟iic的方式将屏幕点亮。
结果图.jpg
硬件设计:
使用的是模拟IIC进行通信,使用的引脚可以随意选择,如下所示:
硬件连接.jpg
程序设计:
添加LCD文件库
添加LCD.jpg
添加头文件路径
头文件路径.jpg
初始化I/O口
  1. CKCU_PeripClockConfig_TypeDef GPIOlock = {{ 0 }};
  2.     GPIOlock.Bit.AFIO = 1;
  3.         GPIOlock.Bit.PC = 1; //使能PC
  4.         GPIOlock.Bit.PA = 1; //使能PC
  5.         CKCU_PeripClockConfig(GPIOlock, ENABLE); //使能时钟
  6.    
  7.         
  8.     AFIO_GPxConfig(GPIO_PA, AFIO_PIN_5|AFIO_PIN_6, AFIO_FUN_GPIO);
  9.         AFIO_GPxConfig(GPIO_PA, AFIO_PIN_0|AFIO_PIN_1|AFIO_PIN_2|AFIO_PIN_3, AFIO_FUN_GPIO);
  10.         
  11.         GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_5|GPIO_PIN_6, GPIO_PR_DOWN);
  12.         GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_PR_DOWN);
  13.         
  14.         GPIO_DirectionConfig(HT_GPIOA, GPIO_PIN_5|GPIO_PIN_6, GPIO_DIR_OUT);
  15.     GPIO_DirectionConfig(HT_GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_DIR_OUT);
使用宏定义的方式进行语句的使用,也方便移植到其他MCU 上。
宏定义.jpg
模拟IIC部分
  1. //向SPI总线传输一个8位数据
  2. void  SPI_WriteData(u8 Data)
  3. {
  4.         unsigned char i=0;
  5.         for(i=8;i>0;i--)
  6.         {
  7.                         if(Data&0x80)
  8.                         {                                
  9.                         LCD_SDA_SET; //输出数据
  10.                         }
  11.                         else
  12.                         {
  13.                                 LCD_SDA_CLR;
  14.                         }
  15.       LCD_SCL_CLR;
  16.                         
  17.       LCD_SCL_SET;
  18.       Data<<=1;
  19.         }
  20. }

  21. //向液晶屏写一个8位指令
  22. void Lcd_WriteIndex(u8 Index)
  23. {
  24.    //SPI 写命令时序开始
  25.    LCD_CS_CLR;
  26.    LCD_RS_CLR;
  27.          SPI_WriteData(Index);
  28.    LCD_CS_SET;
  29. }

  30. //向液晶屏写一个8位数据
  31. void Lcd_WriteData(u8 Data)
  32. {
  33.    LCD_CS_CLR;
  34.    LCD_RS_SET;
  35.    SPI_WriteData(Data);
  36.    LCD_CS_SET;
  37. }
  38. //向液晶屏写一个16位数据
  39. void LCD_WriteData_16Bit(u16 Data)
  40. {
  41.    LCD_CS_CLR;
  42.    LCD_RS_SET;
  43.          SPI_WriteData(Data>>8);         //写入高8位数据
  44.          SPI_WriteData(Data);                         //写入低8位数据
  45.    LCD_CS_SET;
  46. }

  47. void Lcd_WriteReg(u8 Index,u8 Data)
  48. {
  49.         Lcd_WriteIndex(Index);
  50.   Lcd_WriteData(Data);
  51. }

  52. void Lcd_Reset(void)
  53. {
  54.         LCD_RST_CLR;
  55.         delay_ms(100);
  56.         LCD_RST_SET;
  57.         delay_ms(50);
  58. }

  59. //LCD Init For 1.44Inch LCD Panel with ST7735R.
  60. void Lcd_Init(void)
  61. {        
  62.         LCD_GPIO_Init();
  63.         Lcd_Reset(); //Reset before LCD Init.

  64.         //LCD Init For 1.44Inch LCD Panel with ST7735R.
  65.         Lcd_WriteIndex(0x11);//Sleep exit
  66.         delay_ms (120);
  67. //               
  68.         //ST7735R Frame Rate
  69.         Lcd_WriteIndex(0xB1);
  70.         Lcd_WriteData(0x01);
  71.         Lcd_WriteData(0x2C);
  72.         Lcd_WriteData(0x2D);

  73.         Lcd_WriteIndex(0xB2);
  74.         Lcd_WriteData(0x01);
  75.         Lcd_WriteData(0x2C);
  76.         Lcd_WriteData(0x2D);

  77.         Lcd_WriteIndex(0xB3);
  78.         Lcd_WriteData(0x01);
  79.         Lcd_WriteData(0x2C);
  80.         Lcd_WriteData(0x2D);
  81.         Lcd_WriteData(0x01);
  82.         Lcd_WriteData(0x2C);
  83.         Lcd_WriteData(0x2D);
  84.         
  85.         Lcd_WriteIndex(0xB4); //Column inversion
  86.         Lcd_WriteData(0x07);
  87.         
  88.         //ST7735R Power Sequence
  89.         Lcd_WriteIndex(0xC0);
  90.         Lcd_WriteData(0xA2);
  91.         Lcd_WriteData(0x02);
  92.         Lcd_WriteData(0x84);
  93.         Lcd_WriteIndex(0xC1);
  94.         Lcd_WriteData(0xC5);

  95.         Lcd_WriteIndex(0xC2);
  96.         Lcd_WriteData(0x0A);
  97.         Lcd_WriteData(0x00);

  98.         Lcd_WriteIndex(0xC3);
  99.         Lcd_WriteData(0x8A);
  100.         Lcd_WriteData(0x2A);
  101.         Lcd_WriteIndex(0xC4);
  102.         Lcd_WriteData(0x8A);
  103.         Lcd_WriteData(0xEE);
  104.         
  105.         Lcd_WriteIndex(0xC5); //VCOM
  106.         Lcd_WriteData(0x0E);
  107.         
  108.         Lcd_WriteIndex(0x36); //MX, MY, RGB mode
  109.         Lcd_WriteData(0xC0);
  110.         
  111.         //ST7735R Gamma Sequence
  112.         Lcd_WriteIndex(0xe0);
  113.         Lcd_WriteData(0x0f);
  114.         Lcd_WriteData(0x1a);
  115.         Lcd_WriteData(0x0f);
  116.         Lcd_WriteData(0x18);
  117.         Lcd_WriteData(0x2f);
  118.         Lcd_WriteData(0x28);
  119.         Lcd_WriteData(0x20);
  120.         Lcd_WriteData(0x22);
  121.         Lcd_WriteData(0x1f);
  122.         Lcd_WriteData(0x1b);
  123.         Lcd_WriteData(0x23);
  124.         Lcd_WriteData(0x37);
  125.         Lcd_WriteData(0x00);         
  126.         Lcd_WriteData(0x07);
  127.         Lcd_WriteData(0x02);
  128.         Lcd_WriteData(0x10);

  129.         Lcd_WriteIndex(0xe1);
  130.         Lcd_WriteData(0x0f);
  131.         Lcd_WriteData(0x1b);
  132.         Lcd_WriteData(0x0f);
  133.         Lcd_WriteData(0x17);
  134.         Lcd_WriteData(0x33);
  135.         Lcd_WriteData(0x2c);
  136.         Lcd_WriteData(0x29);
  137.         Lcd_WriteData(0x2e);
  138.         Lcd_WriteData(0x30);
  139.         Lcd_WriteData(0x30);
  140.         Lcd_WriteData(0x39);
  141.         Lcd_WriteData(0x3f);
  142.         Lcd_WriteData(0x00);
  143.         Lcd_WriteData(0x07);
  144.         Lcd_WriteData(0x03);
  145.         Lcd_WriteData(0x10);  
  146.         
  147.         Lcd_WriteIndex(0x2a);
  148.         Lcd_WriteData(0x00);
  149.         Lcd_WriteData(0x00);
  150.         Lcd_WriteData(0x00);
  151.         Lcd_WriteData(0x7f);

  152.         Lcd_WriteIndex(0x2b);
  153.         Lcd_WriteData(0x00);
  154.         Lcd_WriteData(0x00);
  155.         Lcd_WriteData(0x00);
  156.         Lcd_WriteData(0x9f);
  157.         
  158.         Lcd_WriteIndex(0xF0); //Enable test command  
  159.         Lcd_WriteData(0x01);
  160.         Lcd_WriteIndex(0xF6); //Disable ram power save mode
  161.         Lcd_WriteData(0x00);
  162.         
  163.         Lcd_WriteIndex(0x3A); //65k mode
  164.         Lcd_WriteData(0x05);
  165.         
  166.         
  167.         Lcd_WriteIndex(0x29);//Display on         
  168. }
主函数,这里使用的是之前使用FreeRTOS的程序,灯依然会闪,只是加入了显示的部分。
  1. /*********************************************************************************************************//**
  2. * [url=home.php?mod=space&uid=288409]@file[/url]    IP/Example/main.c
  3. * [url=home.php?mod=space&uid=895143]@version[/url] $Rev:: 4869         $
  4. * [url=home.php?mod=space&uid=212281]@date[/url]    $Date:: 2020-08-05 #$
  5. * [url=home.php?mod=space&uid=247401]@brief[/url]   Main program.
  6. *************************************************************************************************************
  7. * @attention
  8. *
  9. * Firmware Disclaimer Information
  10. *
  11. * 1. The customer hereby acknowledges and agrees that the program technical documentation, including the
  12. *    code, which is supplied by Holtek Semiconductor Inc., (hereinafter referred to as "HOLTEK") is the
  13. *    proprietary and confidential intellectual property of HOLTEK, and is protected by copyright law and
  14. *    other intellectual property laws.
  15. *
  16. * 2. The customer hereby acknowledges and agrees that the program technical documentation, including the
  17. *    code, is confidential information belonging to HOLTEK, and must not be disclosed to any third parties
  18. *    other than HOLTEK and the customer.
  19. *
  20. * 3. The program technical documentation, including the code, is provided "as is" and for customer reference
  21. *    only. After delivery by HOLTEK, the customer shall use the program technical documentation, including
  22. *    the code, at their own risk. HOLTEK disclaims any expressed, implied or statutory warranties, including
  23. *    the warranties of merchantability, satisfactory quality and fitness for a particular purpose.
  24. *
  25. * <h2><center>Copyright (C) Holtek Semiconductor Inc. All rights reserved</center></h2>
  26. ************************************************************************************************************/
  27. // <<< Use Configuration Wizard in Context Menu >>>

  28. /* Includes ------------------------------------------------------------------------------------------------*/
  29. #include "ht32.h"
  30. #include "ht32_board.h"
  31. #include "FreeRTOS.h"
  32. #include "task.h"
  33. #include "delay.h"
  34. #include "QDTFT_demo.h"
  35. #include "Lcd_Driver.h"
  36. #include "ht32f5xxxx_gpio.h"

  37. /* Settings ------------------------------------------------------------------------------------------------*/
  38. /* Private types -------------------------------------------------------------------------------------------*/
  39. /* Private constants ---------------------------------------------------------------------------------------*/
  40. /* Private function prototypes -----------------------------------------------------------------------------*/
  41. void NVIC_Configuration(void);
  42. void CKCU_Configuration(void);
  43. void GPIO_Configuration(void);
  44. #if (ENABLE_CKOUT == 1)
  45. void CKOUTConfig(void);
  46. #endif



  47. //任务堆栈大小
  48. #define LED1_TASK_STACK              256
  49. #define LED2_TASK_STACK              215

  50. //任务优先级
  51. #define LED1_TASK_PRIORITY            5
  52. #define LED2_TASK_PRIORITY           3




  53. xTaskHandle startTask;
  54. xTaskHandle LED1Task;
  55. xTaskHandle LED2Task;


  56. portTASK_FUNCTION(vLED1Task, pvParameters)
  57. {
  58.         while(1)
  59.         {
  60.      HT32F_DVB_LEDOn(HT_LED1);
  61.      vTaskDelay(200);
  62.          HT32F_DVB_LEDOff(HT_LED1);
  63.          vTaskDelay(200);
  64.         }
  65. }

  66. portTASK_FUNCTION(vLED2Task, pvParameters)
  67. {        

  68.         while(1)
  69.         {
  70.         
  71.      HT32F_DVB_LEDOn(HT_LED2);
  72.      vTaskDelay(500);
  73.          HT32F_DVB_LEDOff(HT_LED2);
  74.          vTaskDelay(500);

  75.         }
  76. }


  77. /**********************************************************************************************************
  78. *函 数 名: vStartTask
  79. *功能说明: 系统启动任务,调用各类初始化函数,并创建消息队列和要运行的用户任务
  80. *形    参: 无
  81. *返 回 值: 无
  82. **********************************************************************************************************/
  83. portTASK_FUNCTION(vStartTask, pvParameters)
  84. {

  85.         xTaskCreate(vLED1Task, (char const*)"SensorReadTask",LED1_TASK_STACK, NULL, LED1_TASK_PRIORITY, &LED1Task);
  86.         xTaskCreate(vLED2Task, (char const*)"SensorUpdateTask",LED2_TASK_STACK, NULL,LED2_TASK_PRIORITY, &LED2Task);

  87.         //删除本任务
  88.   vTaskDelete(NULL);
  89. }

  90.         

  91. /* Private macro -------------------------------------------------------------------------------------------*/
  92. /* Global variables ----------------------------------------------------------------------------------------*/
  93. /* Private variables ---------------------------------------------------------------------------------------*/
  94. /* Global functions ----------------------------------------------------------------------------------------*/
  95. /*********************************************************************************************************//**
  96.   * [url=home.php?mod=space&uid=247401]@brief[/url]  Main program.
  97.   * @retval None
  98.   ***********************************************************************************************************/
  99. int main(void)
  100. {
  101.         
  102.   NVIC_Configuration();               /* NVIC configuration                                                 */
  103.   CKCU_Configuration();               /* System Related configuration                                       */
  104.   GPIO_Configuration();               /* GPIO Related configuration                                         */
  105.   RETARGET_Configuration();           /* Retarget Related configuration                                     */
  106.   HT32F_DVB_LEDInit(HT_LED1);
  107.   HT32F_DVB_LEDInit(HT_LED2);
  108.   HT32F_DVB_LEDInit(HT_LED3);
  109.   HT32F_DVB_LEDOn(HT_LED1);
  110.   HT32F_DVB_LEDOff(HT_LED2);
  111.   HT32F_DVB_LEDOn(HT_LED3);
  112.   Lcd_Init();
  113.   LCD_LED_SET;
  114.   Lcd_Clear(GRAY0);
  115.   Gui_DrawFont_GBK16(20,20,BLACK,GRAY0,"HT32 & 21ic");
  116.   Gui_DrawFont_GBK16(20,40,BLACK,GRAY0,"1.8 TFT test");
  117.               //创建启动任务
  118.     xTaskCreate(vStartTask, "startTask", 128, NULL, 0, &startTask);
  119. //    //OS调度器启动
  120.     vTaskStartScheduler();

  121. }

  122. /*********************************************************************************************************//**
  123.   * [url=home.php?mod=space&uid=247401]@brief[/url]  Configure the NVIC vector table.
  124.   * @retval None
  125.   ***********************************************************************************************************/
  126. void NVIC_Configuration(void)
  127. {
  128.   NVIC_SetVectorTable(NVIC_VECTTABLE_FLASH, 0x0);     /* Set the Vector Table base location at 0x00000000   */
  129. }

  130. /*********************************************************************************************************//**
  131.   * [url=home.php?mod=space&uid=247401]@brief[/url]  Configure the system clocks.
  132.   * @retval None
  133.   ***********************************************************************************************************/
  134. void CKCU_Configuration(void)
  135. {
  136. /*
  137. //<e0> Enable Peripheral Clock
  138. //  <h> Communication
  139. //    <q5> EBI
  140. //    <q11> I2C0   <q12> I2C1
  141. //    <q23> I2S
  142. //    <q21> SCI0 <q22> SCI1
  143. //    <q13> SPI0   <q14> SPI1
  144. //    <q17> UART0  <q18> UART1
  145. //    <q15> USART0 <q16> USART1
  146. //    <q3>  USB
  147. //  </h>
  148. //  <h> IO
  149. //    <q7> GPIO Port A <q8>  GPIO Port B <q9>  GPIO Port C <q10>  GPIO Port D
  150. //    <q19> AFIO
  151. //    <q20> EXTI
  152. //  </h>
  153. //  <h> System
  154. //    <q32> ADC
  155. //    <q4>  CKREF
  156. //    <q6>  CRC
  157. //    <q31> CMP
  158. //    <q2>  PDMA
  159. //    <q26> PWRCU
  160. //  </h>
  161. //  <h> Timer
  162. //    <q29> BFTM0 <q30> BFTM1
  163. //    <q33> SCTM0 <q34> SCTM1 <q35> SCTM2 <q36> SCTM3
  164. //    <q27> GPTM0 <q28> GPTM1
  165. //    <q24> MCTM0
  166. //    <q26> RTC   <q25> WDT
  167. //  </h>
  168. //</e>
  169. */
  170. #if 1
  171.   CKCU_PeripClockConfig_TypeDef CKCUClock = {{ 0 }};
  172.   CKCUClock.Bit.PDMA       = 0;
  173.   CKCUClock.Bit.USBD       = 0;
  174.   CKCUClock.Bit.CKREF      = 0;
  175.   CKCUClock.Bit.EBI        = 0;
  176.   CKCUClock.Bit.CRC        = 0;
  177.   CKCUClock.Bit.PA         = 1;
  178.   CKCUClock.Bit.PB         = 1;
  179.   CKCUClock.Bit.PC         = 1;
  180.   CKCUClock.Bit.PD         = 1;
  181.   CKCUClock.Bit.I2C0       = 0;
  182.   CKCUClock.Bit.I2C1       = 0;
  183.   CKCUClock.Bit.SPI0       = 0;
  184.   CKCUClock.Bit.SPI1       = 0;
  185.   CKCUClock.Bit.USART0     = 1;
  186.   CKCUClock.Bit.USART1     = 0;
  187.   CKCUClock.Bit.UART0      = 0;
  188.   CKCUClock.Bit.UART1      = 0;
  189.   CKCUClock.Bit.AFIO       = 1;
  190.   CKCUClock.Bit.EXTI       = 0;
  191.   CKCUClock.Bit.SCI0       = 0;
  192.   CKCUClock.Bit.SCI1       = 0;
  193.   CKCUClock.Bit.I2S        = 0;
  194.   CKCUClock.Bit.MCTM0      = 0;
  195.   CKCUClock.Bit.WDT        = 0;
  196.   CKCUClock.Bit.BKP        = 0;
  197.   CKCUClock.Bit.GPTM0      = 0;
  198.   CKCUClock.Bit.GPTM1      = 0;
  199.   CKCUClock.Bit.BFTM0      = 0;
  200.   CKCUClock.Bit.BFTM1      = 0;
  201.   CKCUClock.Bit.CMP        = 0;
  202.   CKCUClock.Bit.ADC        = 0;
  203.   CKCUClock.Bit.SCTM0      = 0;
  204.   CKCUClock.Bit.SCTM1      = 0;
  205.   CKCUClock.Bit.SCTM2      = 0;
  206.   CKCUClock.Bit.SCTM3      = 0;
  207.   CKCU_PeripClockConfig(CKCUClock, ENABLE);
  208. #endif

  209. #if (ENABLE_CKOUT == 1)
  210.   CKOUTConfig();
  211. #endif
  212. }

  213. #if (ENABLE_CKOUT == 1)
  214. /*********************************************************************************************************//**
  215.   * @brief  Configure the debug output clock.
  216.   * @retval None
  217.   ***********************************************************************************************************/
  218. void CKOUTConfig(void)
  219. {
  220.   { /* Enable peripheral clock                                                                              */
  221.     CKCU_PeripClockConfig_TypeDef CKCUClock = {{ 0 }};
  222.     CKCUClock.Bit.AFIO = 1;
  223.     CKCU_PeripClockConfig(CKCUClock, ENABLE);
  224.   }

  225.   AFIO_GPxConfig(GPIO_PA, AFIO_PIN_9, AFIO_MODE_15);

  226.   { /* Configure CKOUT                                                                                      */
  227.     CKCU_CKOUTInitTypeDef CKOUTInit;
  228.     CKOUTInit.CKOUTSRC = CKCU_CKOUTSRC_HCLK_DIV16;
  229.     CKCU_CKOUTConfig(&CKOUTInit);
  230.   }
  231. }
  232. #endif

  233. /*********************************************************************************************************//**
  234.   * @brief  Configure the GPIO ports.
  235.   * @retval None
  236.   ***********************************************************************************************************/
  237. void GPIO_Configuration(void)
  238. {
  239.   /* !!! NOTICE !!!
  240.      Shall be modified according to the part number.
  241.   */
  242. #if (RETARGET_PORT == RETARGET_USART0)
  243.   //AFIO_GPxConfig(GPIO_PA, AFIO_PIN_2 | AFIO_PIN_3, AFIO_FUN_USART_UART);
  244. #endif

  245. #if (RETARGET_PORT == RETARGET_USART1)
  246.   //AFIO_GPxConfig(GPIO_PA, AFIO_PIN_4 | AFIO_PIN_5, AFIO_FUN_USART_UART);
  247. #endif

  248. #if (RETARGET_PORT == RETARGET_UART0)
  249.   //AFIO_GPxConfig(GPIO_PC, AFIO_PIN_4 | AFIO_PIN_5, AFIO_FUN_USART_UART);
  250. #endif

  251. #if (RETARGET_PORT == RETARGET_UART1)
  252.   //AFIO_GPxConfig(GPIO_PC, AFIO_PIN_1 | AFIO_PIN_3, AFIO_FUN_USART_UART);
  253. #endif
  254. }

  255. #if (HT32_LIB_DEBUG == 1)
  256. /*********************************************************************************************************//**
  257.   * @brief  Report both the error name of the source file and the source line number.
  258.   * @param  filename: pointer to the source file name.
  259.   * @param  uline: error line source number.
  260.   * @retval None
  261.   ***********************************************************************************************************/
  262. void assert_error(u8* filename, u32 uline)
  263. {
  264.   /*
  265.      This function is called by IP library that the invalid parameters has been passed to the library API.
  266.      Debug message can be added here.
  267.      Example: printf("Parameter Error: file %s on line %d\r\n", filename, uline);
  268.   */

  269.   while (1)
  270.   {
  271.   }
  272. }
  273. #endif

显示结果(在上面的程序基础上加入了其他显示功能):
tutieshi_640x288_7s.gif
   
gouguoccc 发表于 2022-9-11 18:05 来自手机 | 显示全部楼层
两个板子,霸气。
1988020566 发表于 2022-11-5 09:43 | 显示全部楼层
oled不如lcd好用,显示的太单一了。
olivem55arlowe 发表于 2022-11-5 10:25 | 显示全部楼层
比较喜欢用0.96寸的OLED,价格合适。
uiint 发表于 2022-11-5 10:51 | 显示全部楼层
这个也是iic接口吗?能不能直接用iic读写和控制呢
wwppd 发表于 2022-12-2 22:20 | 显示全部楼层
使用这个屏幕最大的刷新速度是多少?
adolphcocker 发表于 2022-12-2 22:28 | 显示全部楼层
怎么才能把汉字和英文连用              
chenjun89 发表于 2022-12-3 08:33 来自手机 | 显示全部楼层
这个显示效果看起来有点像墨水屏
hilahope 发表于 2022-12-3 12:24 | 显示全部楼层
彩色屏幕占用的内存大小不一样的吗?
loutin 发表于 2022-12-4 20:19 | 显示全部楼层
是否支持触摸功能的使用呢?              
deliahouse887 发表于 2022-12-4 22:21 | 显示全部楼层
ht32支持fsmc的接口吗?              
LEDyyds 发表于 2022-12-28 10:36 | 显示全部楼层
过程详细,实现效果较好,大佬厉害
问天少年 发表于 2022-12-29 09:58 | 显示全部楼层
板子上的触摸按键还挺有意思的
lihuami 发表于 2023-1-5 12:38 | 显示全部楼层
彩色屏幕就是用起来非常的棒。              
wilhelmina2 发表于 2023-1-5 12:47 | 显示全部楼层
怎么才能把这个屏幕 速度提高起来
yeates333 发表于 2023-1-5 13:56 | 显示全部楼层
这个是硬件spi吗?              
bestwell 发表于 2023-1-6 18:15 | 显示全部楼层
怎么使用总线的方式控制单片机呢?
lzmm 发表于 2023-1-6 19:37 | 显示全部楼层
是不是可以通过dma+spi的方式实现呢?
lihuami 发表于 2023-2-2 12:36 | 显示全部楼层
彩色屏幕还是比较棒的。              
jonas222 发表于 2023-2-2 12:44 | 显示全部楼层
0.96寸的OLED的价格比较合适。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

89

帖子

2

粉丝