发新帖本帖赏金 10.00元(功能说明)我要提问
12下一页
返回列表
打印
[开发板与模块]

【ESK32-30519 + ESK32-21001测评】MDM-2802显示模块及波形显示

[复制链接]
3489|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 eltonchang2001 于 2022-11-9 11:53 编辑

#申请原创#
MDM-2802显示屏是一款以前用于Freescale产品的显示器件,其几何尺寸为2.8寸,分辨率为240*320,它的外观如图1所示。
别看该显示屏的引脚比较多,它其实是一款以SPI方式工作的器件,其主控芯片为ILI9341。
图1  MDM-2802显示屏
该显示屏的引脚分布如图2所示,其实就使用情况来看它更近于是一个I2C接口的显示屏。
图2 引脚分配
为使用HT32F54253开发板来驱动该显示屏,其引脚连接关系为:
SCLK --- PA0
MISO--- PA1
CS  --- PC2
RST --- NRST
BLC --- 3.3V
VDD---3.3V
GND---GND
图3 引脚连接
为便于高低电平的输出,其语句定义如下:
#define CLR_CLK()    GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_0)
#define SET_CLK()    GPIO_SetOutBits(HT_GPIOA, GPIO_PIN_0)   //CLK
#define CLR_SDA()    GPIO_ClearOutBits(HT_GPIOA, GPIO_PIN_1)
#define SET_SDA()    GPIO_SetOutBits(HT_GPIOA, GPIO_PIN_1)   //DIN
#define CLR_CS()     GPIO_ClearOutBits(HT_GPIOC, GPIO_PIN_2)
#define SET_CS()     GPIO_SetOutBits(HT_GPIOC, GPIO_PIN_2)   //CS
对使用引脚的功能配置函数为:
void app_tft_init(void)
{
    CKCU_PeripClockConfig_TypeDef CKCUClock = {{ 0 }};
    CKCUClock.Bit.AFIO = 1;
    CKCUClock.Bit.PA = 1;
    CKCUClock.Bit.PC = 1;
    CKCU_PeripClockConfig(CKCUClock, ENABLE);
    AFIO_GPxConfig(GPIO_PA, AFIO_PIN_0, AFIO_FUN_GPIO);
    AFIO_GPxConfig(GPIO_PA, AFIO_PIN_1, AFIO_FUN_GPIO);
    AFIO_GPxConfig(GPIO_PC, AFIO_PIN_2, AFIO_FUN_GPIO);
    GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_0, GPIO_PR_DOWN);
    GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_1, GPIO_PR_DOWN);
    GPIO_PullResistorConfig(HT_GPIOC, GPIO_PIN_2, GPIO_PR_DOWN);
    GPIO_WriteOutBits(HT_GPIOA, GPIO_PIN_0, RESET);
    GPIO_WriteOutBits(HT_GPIOA, GPIO_PIN_1, RESET);
    GPIO_WriteOutBits(HT_GPIOC, GPIO_PIN_2, RESET);
    GPIO_DirectionConfig(HT_GPIOA, GPIO_PIN_0, GPIO_DIR_OUT);
    GPIO_DirectionConfig(HT_GPIOA, GPIO_PIN_1, GPIO_DIR_OUT);
    GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_2, GPIO_DIR_OUT);
}

该显示屏的初始化函数为:
void ili9341_init(void)
{
    write_register(0xCF);
    write_data(0x00);
    write_data(0xC1);
    write_data(0X30);
    write_register(0xED);
    ... ...

    write_data(0x00);
    write_data(0x00);
    write_data(0x00);
    write_data(0xef);
    write_register(0x11);
    lcdc_delay(1000);
    write_register(0x29);
}

实现图片显示的函数为:
void showimage(void)
{
    int i,j;
    set_cursor(10,30);
    gram_prepare();
    for(j=0;j<50;j++)
    {
          set_cursor(10,30+j);
          gram_prepare();
                 for(i=0;i<50;i++)
          {
              write_data(gImage_tb[(j*50+i)*2]);
              write_data(gImage_tb[(j*50+i)*2+1]);
          }
    }
}

字符串显示的函数为:
void LCD_ShowString(unsigned int x,unsigned int y,const char *p)
{
    while(*p!='\0')
    {
        if(x>LCD_W-16)

实现图4所示效果的主程序为:
int main(void)
{
         GPIO_Configuration();
         GPIO_SetOutBits(HT_GPIOC, GPIO_PIN_5);
         app_tft_init();
         ili9341_init();
         ili9341_clear(RED);
         LCD_DrawLine(WHITE ,0, 26, 239, 26);
         LCD_DrawLine(WHITE,0, 296, 239, 296);
         LCD_DrawRectangle(BLUE,40, 140, 160, 260);
         Draw_Circle(GREEN,100,200,60);
         showimage();
         BACK_COLOR=RED;
         POINT_COLOR=YELLOW;
         LCD_ShowString(40,10,"MDM-2802 & HT32F54253");
         LCD_ShowString(60,300,"BY: jinglixixi");
         while (1);
}

图4 显示效果

在与A/D数模转换相配合的情况下,可实现检测数据的波形显示,其主程序为:
int main(void)
{
        int u;
        int x,y,yp;
        RETARGET_Configuration();
        ADC_Configuration();
        ADC_Cmd(HTCFG_ADC_PORT, ENABLE);
        ADC_SoftwareStartConvCmd(HTCFG_ADC_PORT, ENABLE);
        app_tft_init();
        ili9341_init();
        ili9341_clear(RED);
        LCD_DrawLine(WHITE ,0, 26, 239, 26);
        LCD_DrawLine(WHITE,0, 296, 239, 296);
        BACK_COLOR=RED;
        POINT_COLOR=YELLOW;
        LCD_ShowString(40,10,"MDM-2802 & HT32F54253");
        LCD_ShowString(6,40,"ADC: ");
        LCD_ShowString(6,60,"U=");
        LCD_ShowString(60,300,"BY: jinglixixi");
        x=20;
        y=260;
        LCD_DrawLine(WHITE,20, 260, 20, 80);
        LCD_DrawLine(WHITE,20, 260, 220, 260);
        GUI_DispChar('.', 60, 60);
        while (1)
       {
              if (gADC_SingleEndOfConversion)
              {
                        u=gPotentiometerLevel;
                        GUI_DispChar('0'+u/1000, 40, 40);
                        GUI_DispChar('0'+u%1000/100, 50, 40);
                        GUI_DispChar('0'+u%100/10, 60, 40);
                        GUI_DispChar('0'+u%10, 70, 40);
                        u=3.3*u/4.095;
                        GUI_DispChar('0'+u/1000, 50, 60);
                        GUI_DispChar('0'+u%1000/100, 70, 60);
                        yp=260-u/30;
                        LCD_DrawLine(WHITE ,x, y, x+4, yp);
                        y=yp;
                        x=x+4;
                        if(x>210)
                        {
                             x=20;
                             y=260;
                             ili9341_clear(RED);
                         }
              }
      }
}

图5 波形显示


图6 电位器调节效果

使用特权

评论回复

打赏榜单

eltonchang2001 打赏了 10.00 元 2022-11-02
理由:用心

相关帖子

沙发
eltonchang2001| | 2022-9-26 10:32 | 只看该作者
楼主的演示很棒,实时显示电位器转动後的AD采样数值,所见即所得

只是电位器在扩充板上,楼主用飞线的吗?

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2022-9-27 08:19 | 只看该作者
eltonchang2001 发表于 2022-9-26 10:32
楼主的演示很棒,实时显示电位器转动後的AD采样数值,所见即所得

只是电位器在扩充板上,楼主用飞线的吗? ...

飞了3条线,显示屏的引脚与LCD插排的位置差异较大较难借用,只好飞线了。

使用特权

评论回复
地板
backlugin| | 2022-10-1 16:32 | 只看该作者
OLED 屏不好弄吗              

使用特权

评论回复
5
xiaoyaozt| | 2022-10-1 16:45 | 只看该作者
SPI方式工作节省了不少IO口了。   

使用特权

评论回复
6
linfelix| | 2022-10-1 17:16 | 只看该作者
控制LCD 的Demo应用               

使用特权

评论回复
7
gygp| | 2022-10-1 17:41 | 只看该作者
MDM2802液晶屏在中文显示、图形绘制及图片显示方面的内容都不错。

使用特权

评论回复
8
mmbs| | 2022-10-1 18:21 | 只看该作者
HT32F54253开发板的价格贵吗

使用特权

评论回复
9
jinglixixi|  楼主 | 2022-10-2 16:55 | 只看该作者
mmbs 发表于 2022-10-1 18:21
HT32F54253开发板的价格贵吗

活动申请的板子,具体价格不太清楚。

使用特权

评论回复
10
jinglixixi|  楼主 | 2022-10-2 16:55 | 只看该作者
gygp 发表于 2022-10-1 17:41
MDM2802液晶屏在中文显示、图形绘制及图片显示方面的内容都不错。

还是比较有特点的

使用特权

评论回复
11
jinglixixi|  楼主 | 2022-10-2 16:56 | 只看该作者
xiaoyaozt 发表于 2022-10-1 16:45
SPI方式工作节省了不少IO口了。

的确是这样

使用特权

评论回复
12
jinglixixi|  楼主 | 2022-10-2 16:58 | 只看该作者

也不算太难,只是我的OLED屏尺寸太小,是个0.96寸的屏。

使用特权

评论回复
13
caigang13| | 2022-10-3 12:00 | 只看该作者
背景色有点亮了

使用特权

评论回复
14
Henryko| | 2022-10-4 19:50 | 只看该作者
OLED 屏好不好弄?

使用特权

评论回复
15
jinglixixi|  楼主 | 2022-10-5 09:01 | 只看该作者
Henryko 发表于 2022-10-4 19:50
OLED 屏好不好弄?

不成问题

使用特权

评论回复
16
earlmax| | 2022-10-5 18:02 | 只看该作者
如何使用蓝牙无线模块在虚拟示波器显示波形

使用特权

评论回复
17
pmp| | 2022-10-5 19:00 | 只看该作者
能显示电压波形的模块?               

使用特权

评论回复
18
jinglixixi|  楼主 | 2022-10-6 08:49 | 只看该作者
earlmax 发表于 2022-10-5 18:02
如何使用蓝牙无线模块在虚拟示波器显示波形

使用串口利用透传模块将采集数据发给虚拟示波器来显示波形

使用特权

评论回复
19
jinglixixi|  楼主 | 2022-10-6 08:50 | 只看该作者
pmp 发表于 2022-10-5 19:00
能显示电压波形的模块?

不是

使用特权

评论回复
20
kmzuaz| | 2022-10-9 20:44 | 只看该作者
这个的速度怎么样         

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

451

主题

2747

帖子

38

粉丝