分享:STM32与迪文屏交互,轻松实现一些简单的功能!

本文分享了使用STM32F103评估板和迪文屏进行交互,实现包括LED控制、亮屏息屏、温度调整、音乐播放控制和音量调节等功能。详细介绍了所需硬件、软件工具,以及程序设计和接口定义,提供相关工程文件和程序下载。

最近,托朋友用STM32F103评估板和迪文屏做了交互(@田),没写多少代码,就实现了一些简单常用的功能,还是很简单的!今天跟大家分享一下:

一、评估板使用说明
1.功能
这里写图片描述

这里写图片描述
图1:整体效果图

这里写图片描述
图2:MCU_KEY_LED

这里写图片描述
图3:MCU-STM32F103开发板

这里写图片描述
图4:按键及LED

注:可实现的功能:
a.通过屏上的图标来控制5路LED灯的状态(LED灯的开和关来表示状态),上电5路LED熄灭状态。
b. 通过评估板上的物理按键1,来控制亮屏和息屏,上电状态为亮屏状态。
c. 通过评估板上的物理按键2&3,来调节屏幕上的温度指数,上电初始值25度,以1为步长递增递减,最小0,最大255。
d. 通过评估板上的物理按键4,来控制音乐的播放和停止,上电音乐不播放。
e. 通过评估板上的物理按键5&6来调节音量的大小,上电音量值50,以10为步长递增递减,最小0,最大250。

2、需使用的工具
a.硬件:正点原子Mini STM32开发板(MCU为STM32F103RCT6,串口TTL电平)+面包板手工焊接5路LED和6路按键扩展。
b. 软件:STM32CubeMX+KEIL MDK5。
c.原理图:详见“硬件原理图”文件夹。
d.程序:工程文件在DGUS II工程文件夹中,下载DWIN_SET导入屏中即可。 STM32程序在“MCU_STM32F103RCT6程序”文件夹。(文件过大,感兴趣的可以给我留言)

二、硬件及软件介绍
1、硬件原理图:详见“硬件原理图”文件夹
(1)硬件接口定义:
这里写图片描述

(2)硬件原理图
这里写图片描述
图5:STM32F103原理图

这里写图片描述
图6:LED及KEY原理图

2.软件程序
界面工程文件在“DGUS_II工程”文件夹中。STM32程序在“MCU_STM32F103RCT6程序”文件夹中。
(1)界面工程
LED1图标:0X1000
LED1按键:0X1200
LED2图标:0X1001
LED2按键:0X1201
LED3图标:0X1002
LED3按键:0X1202
LED4图标:0X1003
LED4按键:0X1203
LED5图标:0X1004
LED5按键:0X1204
音量显示框地址:0X1210
温度显示框地址:0X1110

(2)MCU程序

1).main():硬件初始化,触摸屏初始化,按键扫描,接收触摸屏数据处理
int main(void)
{
uint8_t i;
HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  while (1)
  {     
        HAL_UART_Receive_IT(&huart1,&usart1_data,1);
        if(UP_POWER_FLAG == 0)//上电初始化触摸屏
        {
            UP_POWER_FLAG = 1;
            HMI_SEND_BUF[0] = TEMP;
            PLC_Data_Wr2HMI(0X1110,0,1);
            delay_ms(100);
            HMI_SEND_BUF[0] = VOLUME;
            PLC_Data_Wr2HMI(0X1210,0,1);//ÒôÁ¿ÏÔʾ
            delay_ms(100);
            WRITE_HMI(0X00A1,VOLUME,0x00,0,0,2);//ĬÈÏÒôÁ¿50
            delay_ms(100);
            for(i=0;i<5;i++)
            {
                HMI_SEND_BUF[i] = 0;
            }
            for(i=0;i<20;i++)
            {
                usart1_rxBuf[i] = 0x00;
            }
            HMI_HANDLEFLAG = 0;
        }
        if(PLAY ==1)//监测是否播放完音乐
        {
            READ_HMI(0x00a1,1);
            delay_ms(100);
            if(HMI_HANDLEFLAG)
            {
                if(usart1_rxBuf[8] == 0)
                {
                    PLAY = 0;
                    for(i=0;i<50<
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值