请选择 进入手机版 | 继续访问电脑版

迪文科技论坛

 找回密码
 立即注册
搜索
查看: 17705|回复: 43

【转载】【02.教学视频】T5L C51跑一个hello world例程

[复制链接]

537

主题

158

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10327
发表于 2020-4-29 13:24:19 | 显示全部楼层 |阅读模式
本节课介绍了T5L C51跑一个hello world例程(初始化流程)。
本视频教学由迪文开发者论坛用户  ID 熊家余 分享提供。

本节课课程内容如下:
在第1章节中,已经教会大家如何去搭建好开发环境了,那么本章节将教大家如何去跑一个hello world基础例程,在这个例程中将会用到C51编程和GUI界面设计,目的就是为了给大家演示一下T5L迪文屏开发的一个完整过程,让大家先有一个感性认识,然后呢,为了得到一定的演示效果,这个例程中用到的某些知识点可能还没有讲到,大家先不要去纠结,在后面的章节中我们会慢慢地完善

2.例程设计2.1功能简介
我们这个hello world例程中只有一个启动界面,然后在这个启动界面上放置一个”数据变量显示”控件,这个控件主要是用来显示数值的,然后我们编写C51代码,来控制界面上的数值每隔1秒进行加1。

2.2 GUI界面设计
因为是第一次给大家讲GUI界面设计,所以我先简单地教大家如何去创建一个GUI界面设计工程,在这里就需要用到我们之前安装好的”DGUS Tool界面设计工具”,在本章节中,不会过多地去介绍如何使用”DGUS Tool”这个开发工具,因为不是本章节的重点,后面会出一个章节来专门讲解这个开发工具

2.3 C51代码设计
我们可以直接利用在第1章节中已经创建好的C51项目工程模板,然后在此基础上进行修改一下,这样的好处就是不用每次去创建C51工程了,方便省事,我们在C51代码中要做的事情就是控制屏幕上的数值每间隔1秒进行加1,代码量比较少,我们就直接写在main函数中了
如下所示:

#include "sys.h"

#define START_WIN_NUM_VP                0x2000 //启动界面上的数据变量显示控件的VP地址

//因为数据变量显示控件的变量类型设置为了"长整数(4字节)",
//所以num变量的数据类型得设为u32,即也是4字节,保持一致
xdata u32 num;

void main(void)
{   
        sys_init();//系统初始化

        //num变量赋予初值0,注意,对于xdata存储区域的变量,在定义的时候,不能
        //直接赋初值,即对于xdata u32 num = 0;这种定义变量的方式是有问题的,
        //这是由于T5L芯片内部自身原因造成的,因为T5L芯片内部扩展的32KB ram
        //必须得在sys_init()系统初始化之后才能够被正常的访问,
        //如果你想在定义变量的时候进行赋初值,那么你可以使用data或者idata关键字,
        //idata u32 num = 0;所示
        num = 0;
        while(1)
        {   
                sys_delay_ms(1000);//精确延时1
                num++;//1
                sys_write_vp(START_WIN_NUM_VP,(u8*)&num,2);//把当前的数值更新到VP地址,4字节也就是2个字
        }
}
虽然说上面的代码比较简单,但是有几个地方是需要注意一下的,请看代码注释

教学视频连接:https://www.yuanzige.com/course/detail/80041?section_id=81074



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

2

主题

12

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2020-5-25 20:22:50 | 显示全部楼层
你好。请问我只有一块已经带外壳的迪文屏,没有开发板。我的屏自身引出了232电平的串口2。我要怎么把C51转换生成的那个BIN文件写到T5L里?
回复

使用道具 举报

0

主题

220

回帖

2232

积分

金牌会员

Rank: 6Rank: 6

积分
2232
发表于 2020-5-25 21:04:06 | 显示全部楼层
lshchan 发表于 2020-5-25 20:22
你好。请问我只有一块已经带外壳的迪文屏,没有开发板。我的屏自身引出了232电平的串口2。我要怎么把C51转 ...

可以通过SD卡去下载
回复

使用道具 举报

2

主题

12

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2020-5-26 07:59:06 | 显示全部楼层
通过SD卡下载后,
1,发现定时器还是没有运行
2,原来的UART2口不可用了
不知道怎么去排错
回复

使用道具 举报

6

主题

18

回帖

101

积分

注册会员

Rank: 2

积分
101
发表于 2020-7-14 09:37:39 | 显示全部楼层
我把文件放到SD卡的DWIN_SET文件夹下以后插上卡,屏幕不亮。
回复

使用道具 举报

0

主题

22

回帖

1573

积分

金牌会员

Rank: 6Rank: 6

积分
1573
发表于 2020-7-14 13:16:06 | 显示全部楼层
redshine 发表于 2020-7-14 09:37
我把文件放到SD卡的DWIN_SET文件夹下以后插上卡,屏幕不亮。

您好,上午建议您更换SD卡,不知道您有测试过吗?
一般插上sd卡,屏幕黑屏的话应该是卡的问题。
回复

使用道具 举报

2

主题

8

回帖

107

积分

注册会员

Rank: 2

积分
107
发表于 2020-12-31 16:06:28 | 显示全部楼层
哪位大神帮忙解答一下,我正在测试一个10寸电阻屏,型号是DMG10768C104-03WTR
为什么我程序刷进去以后,屏幕上显示数据不会累加?一直是0。
我使用的DGUS图形程序是论坛下载的本型号的例程包,C51程序用的是这个帖子里面下载的。
这看着像C51程序没有运行,请问可能是哪里的问题?
补充说一下:地址都检查过了,没有重复的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

13

回帖

477

积分

中级会员

Rank: 3Rank: 3

积分
477
发表于 2020-12-31 17:07:15 | 显示全部楼层
shawnl 发表于 2020-12-31 16:06
哪位大神帮忙解答一下,我正在测试一个10寸电阻屏,型号是DMG10768C104-03WTR
为什么我程序刷进去以后,屏 ...

您好!您直接发指令写变量地址能显示吗?
回复

使用道具 举报

2

主题

8

回帖

107

积分

注册会员

Rank: 2

积分
107
发表于 2020-12-31 17:11:33 来自手机 | 显示全部楼层
一只羊2020 发表于 2020-12-31 17:07
您好!您直接发指令写变量地址能显示吗?

您好,谢谢您的回复。

刷了C51程序串口2就不再支持DGUS串口协议了呀。出厂程序通过串口2是可以使用读写数据指令来操作的,我想用C51来开发,画面和C51程序都刷进去了,不知道为啥数据不变。请指教
回复

使用道具 举报

0

主题

13

回帖

477

积分

中级会员

Rank: 3Rank: 3

积分
477
发表于 2020-12-31 17:27:49 | 显示全部楼层
shawnl 发表于 2020-12-31 17:11
您好,谢谢您的回复。

刷了C51程序串口2就不再支持DGUS串口协议了呀。出厂程序通过串口2是可以使用读写 ...

您好!
1.您用Keil编译生成的是HEX文件,需要用我们的DownLoadFor8051 软件转成bin格式文件,然后烧录到屏幕里去。
或者直接用软件下发(用软件下发的时候要确认串口号和HEX文件)
2.您的变量类型选择长整数(4字节)测试一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:00 , Processed in 0.092586 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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