迪文科技论坛

 找回密码
 立即注册
搜索
查看: 6529|回复: 37

【开源】STM32与DMT80480L070_15WT利用232串口通讯示例

[复制链接]

1

主题

0

回帖

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-12-20 10:00:08 | 显示全部楼层 |阅读模式
开发背景:关于扬尘监测系统中选定传感器的高温高湿度测试
为了更清晰直观地观察出两种传感器在相等温度、湿度下的表现,通过设定程序将传感器测定的PM2.5PM10TSP、气压、噪声、温度、风向和风速九个参数显示在迪文lcd屏幕上。
本次实验采用的迪文屏幕型号为DMT80480L070_15WT,主板为STM32F103系列。
file:///C:/Users/WINGMA~1/AppData/Local/Temp/ksohtml9344/wps1.png
硬件上的连接方式采用232,具体程序如下所示。

//设定主板与迪文屏的232通讯协议

void  commun_232lcd_rx(void)
{
         if(m_Time_Cnt_232lcd==0)
                {
                  commun_232lcd_rx_process();
                        m_Time_Cnt_232lcd=-1;
                }
}

void   commun_232lcd_rx_process(void)

//设定LCD屏幕为从机,根据其指令读取

if((m_RX_Buff_232lcd[0]==0x5A)&&(m_RX_Buff_232lcd[1]==0xA5)&&(m_RX_Buff_232lcd[3]==0x83)&&(m_RX_Buff_232lcd[4]==0x10))
                {

//设定LCD键盘输入指令操作

        if((m_RX_Buff_232lcd[9]==)&&(m_RX_Buff_232lcd[10]==)&&(m_RX_Buff_232lcd[11]==)&&(m_RX_Buff_232lcd[12]== )&&(m_RX_Buff_232lcd[13]==))
                   {
        data_指令 =(m_RX_Buff_232lcd[14]-'0')*100+(m_RX_Buff_232lcd[15]-'0')*10+(m_RX_Buff_232lcd[16]-'0');
                                if((data_指令 >=10)&&(data_指令<=2000))
                    {
                                        STMFLASH_Write(FLASH_SAVE_warn,&data_warn,1);        
                                  lcd_set_display();                                       
                                }                                       
                        }

//气象参数要在主程序中定义,且将传感器测定数据赋值到LCD屏幕对应的地址

void lcd_data_display(void)
{
        unsigned char i;
        unsigned char lcd_data[24]={0x5A,0xA5,0x15,0x82,0x00,0x00,
0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F,0x27,0x0F};  
        if(lcd_data_display_1ms>1000)
        {
           lcd_data_display_1ms=0;
                                lcd_data[0]=0x5A;
                                lcd_data[1]=0xA5;               
                                lcd_data[2]=0x15;
                                lcd_data[3]=0x82;
                                lcd_data[4]=0x00;
                                lcd_data[5]=0x00;                        
                                lcd_data[6]=data_PM2dot5_H;
                                lcd_data[7]=data_PM2dot5_L;
                                lcd_data[8]=data_PM10_H;
                                lcd_data[9]=data_PM10_L;                                
                                lcd_data[10]=data_TSP_H;
                                lcd_data[11]=data_TSP_L;        
                                lcd_data[12]=data_qiya_H;
                                lcd_data[13]=data_qiya_L;        
                                lcd_data[14]=data_wendu_H;
                                lcd_data[15]=data_wendu_L;                                       
                                lcd_data[16]=data_shidu_H;
                                lcd_data[17]=data_shidu_L;
                                lcd_data[18]=data_fengxiang_H;
                                lcd_data[19]=data_fengxiang_L;                                
                                lcd_data[20]=data_fengsu_H;
                                lcd_data[21]=data_fengsu_L;        
                                lcd_data[22]=data_zaosheng_H;
                                lcd_data[23]=data_zaosheng_L;                                
          for(i=0;i<26;i++)
          {putchar232lcd(lcd_data);delay_ms(2);}
        }        
}

//LCD键盘输入的指令十六进制转换

void lcd_set_display(void)
{
            unsigned char i,lcd_set[50]={0};
                        lcd_set[0]=0x5A;
                        lcd_set[1]=0xA5;        
                        lcd_set[2]=41;
                        lcd_set[3]=0x82;
                        lcd_set[4]=0x00;
                        lcd_set[5]=0x10;                                
                        lcd_set[6]=PMxishu[0]>>8;
                        lcd_set[7]=PMxishu[0]&0x00FF;
                        lcd_set[8]=PMxishu[1]>>8;
                        lcd_set[9]=PMxishu[1]&0x00FF;                        
                        lcd_set[10]=PMxishu[2]>>8;
                        lcd_set[11]=PMxishu[2]&0x00FF;
                        lcd_set[12]=WDxishu>>8;
                        lcd_set[13]=WDxishu&0x00FF;
                        lcd_set[14]=SDxishu>>8;
                        lcd_set[15]=SDxishu&0x00FF;                                
                        lcd_set[16]=ZSxishu>>8;
                        lcd_set[17]=ZSxishu&0x00FF;
                        lcd_set[18]=data_warn>>8;
                        lcd_set[19]=data_warn&0x00FF;        
            for(i=0;i<MN_length;i++)
            {
                          lcd_set[20+i]=MN_num;
                  }               
            for(i=0;i<44;i++)
            {
                    putchar232lcd(lcd_set);
                    delay_ms(2);
                  }        
}
回复

使用道具 举报

0

主题

11

回帖

77

积分

注册会员

Rank: 2

积分
77
发表于 2023-5-5 10:24:34 | 显示全部楼层
楼主,求原程序工程文件。1196288589@qq.com,谢谢
回复

使用道具 举报

发表于 2023-5-5 16:56:00 | 显示全部楼层
楼主,请问怎样用迪文屏显示实时数据?
回复

使用道具 举报

0

主题

10

回帖

119

积分

注册会员

Rank: 2

积分
119
发表于 2023-5-5 18:25:56 | 显示全部楼层

楼主,求原程序工程文件。1021315914@qq.com,谢谢
回复

使用道具 举报

0

主题

2

回帖

29

积分

新手上路

Rank: 1

积分
29
发表于 2023-5-7 09:48:49 | 显示全部楼层
楼主,求原程序工程文件。2046271896@qq.com,谢谢
回复

使用道具 举报

0

主题

1

回帖

23

积分

新手上路

Rank: 1

积分
23
发表于 2023-5-14 11:15:23 | 显示全部楼层

楼主,求原程序工程文件。2034801672@qq.com,谢谢
回复

使用道具 举报

2

主题

3

回帖

49

积分

新手上路

Rank: 1

积分
49
发表于 2023-5-22 11:50:37 | 显示全部楼层


楼主,求原程序工程文件。2827716712@qq.com,谢谢
回复

使用道具 举报

0

主题

33

回帖

852

积分

高级会员

Rank: 4

积分
852
发表于 2023-5-30 16:44:32 | 显示全部楼层
楼主666
回复

使用道具 举报

发表于 2023-6-1 19:08:02 | 显示全部楼层
求源程序工程文件
回复

使用道具 举报

发表于 2023-6-1 19:09:06 | 显示全部楼层
求源程序工程文件2780978992@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-12-27 07:08 , Processed in 0.063467 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表