dwinForumAdmin 发表于 2022-4-24 18:14:47

【开源】COF案例分享:转接板硬件资源的使用

——文档转载自电子发烧友

迪文智能屏是一款有别于常规串口屏的产品,多数的串口屏只是解决了精致界面的设计与显示问题,而迪文智能屏则可以通过转换板来提供硬件方面的使用资源,如GPIO、UART、ADC等,并支持以C语言来编程对这些引脚资源加以使用。从而使中、小型的应用直接使用该智能屏就可解决问题,而无需另外购置开发板。在实际测试中,应用转接板所提供的电源引脚只有一组,不能满足多组电源引脚的需求,故在使用时以一块接口扩展板来辅助连接。
1.GPIO口及使用
转接板的所提供的硬件资源如图1所示,为测试GPIO口的使用外部连接如图2所示,其中所用的蜂鸣器为无源蜂鸣器。
    图1转接板及硬件资源         图2扩展连接         图3界面设计
经编程测试,以程序控制LED模块的效果如图4所示,以触摸模块控制LED的效果如图5所示。
图4程序控制LED                         图5触摸控制LED
此外,还可以利用延时函数来模拟RTC计时,其测试主程序为:sbit LED1=P1^0;sbit LED2=P1^1;sbit beep =P1^2;sbit KEY1=P1^3;
在使用软按键的情况下,还可以通过变量图标控件来直观地指示操控状态,该控件的设置如图6所示。
图6控件参数设置
在运行时,按下不同的键会点亮界面上不同的指示灯,将图7所示。图7触摸控制LED2.UART及使用
转接板提供了多个通讯串口,其中最常使用的是UART2,用它不但能直接使用printf语句来输出信息,还可以使用UART2_Sendbyte()函数来发送字节数据,这便为串口设备的使用和控制提供了极大的便利。仍以MP3语音模块播放的使用为例,若在界面上使用3个b.jpg 控件,且变量地址分别为0x1000、0x1002和0x1004,并设定其键值分别为1、2和3,则可通过变量值的判别来播放指定的内容。其程序如下:u=Read_Dgus(0x1000);IF(u==1) {play(1);}u=Read_Dgus(0x1002);if(u==2) {play(2);}u=Read_Dgus(0x1004);if(u==3) {play(3);}
经测试,其运行结果见图8所示。
图8 测试结果
3.数模转换器的使用
转接板还提供了数个数模转换输入引脚,通过它可检测外部的模拟信号值,其检测效果如图9所示。
    图9 模拟检测                           图10 控件设置
在进行数据检测时,其实并不需要对硬件有过多的连接,你只需可把它视为对指定单元的读取即可。执行数据采集的主程序为:00001. void main(void)00002. {00003. u16 ad;00004. float ad_v;00005. InitCPU();00006. Starttimer(1,500);00007. while(1)00008. {00009. ad = (u32) Read_Dgus(CHANNEL1)/2;00010. write_dgus_vp(0x2000,(u8*)&ad,1);00011. ad_v = ad*3.3f/(4096.0f);00012. write_dgus_vp(0x2001,(u8*)& ad_v,4);00013. delay_ms(1000);00014. }00015. }

至此,就对转接板所提供的硬件资源进行较完整的测试。相较于常规的串口屏,迪文智能屏以双核的芯片架构为我们提供了2个设计空间,即界面设计空间和编程设计空间,若掌握了它们的设计方法,就如同掌握了在2个空间进行穿越的本领,迪文智能屏实在是魅力无穷!












tianzmr 发表于 2022-11-2 16:32:31

能把详细代码发上来吗?谢谢

fay 发表于 2022-11-2 16:55:49

tianzmr 发表于 2022-11-2 16:32
能把详细代码发上来吗?谢谢

论坛有其他的COF屏AD开源帖,里面有代码可以参考。
页: [1]
查看完整版本: 【开源】COF案例分享:转接板硬件资源的使用