淘晶驰串口屏与DSP28335通信实现三相电压电流实时显示

最近有个项目需要使用屏幕实时显示系统的电压电流,使用串口屏能减少很多额外的工作量,在此做一个开发记录。

选择了淘晶驰家的串口屏,这里选用的是3.5寸的触屏显示。

附上官方文档:

start [USART HMI 资料中心] (tjc1688.com)

官方的上位机软件:

2.上位软件下载:1.最新版本下载 [USART HMI 资料中心] (tjc1688.com)

查看官方手册,找到需要参考的地方:

一、串口数据解析模式之被动解析模式

       在默认情况下屏接收设备发送数据完整格式为字符串指令加上3个16进制ff,如果屏接收到不完整或者错误指令将会返回数据。例如①1a ff ff ff 

②1c ff ff ff等;可通过bkcmd进行开启关闭返回数据。(在正常情况下建议先将屏幕报错原因找到解决了,再指令关闭返回数据)

 1.1 以文本控件显示为例

       单片机如何控制屏幕(文本控件)

1、在上位机工程新建一个文本控件,假设为t0,将程序下载到串口屏上,
       2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。
       3、发送指令:单片机串口通过字符串模式发送t0.txt="六六六"
       4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff
       5、此时屏幕上的t0控件内的文字变为“六六六”
       

1.2 以数字控件显示为例

       单片机如何控制屏幕(数字控件)

       1、在上位机工程新建一个数字控件,假设为n0,将程序下载到串口屏上,
       2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。
       3、发送指令:单片机串口通过字符串模式发送n0.val=666
       4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff

       5、此时屏幕上的n0控件内的文字变为“666”

      1.3 单片机发送变量到屏幕

       1.3.1 C语言为例

      在通常情况下单片机是很少发送一个常量给屏赋值的,大多数情况都是单片机赋值一个变量到屏幕上的。下面代码以C语言为例

      printf("n0.val=666"); 发送命令
      printf("\xff\xff\xff"); 发送结束符
      printf("n0.val=666\xff\xff\xff");
      printf("n0.val=%d\xff\xff\xff",MyData); 一次性发完命令和结束符
      printf("t0.txt=\"%d\"\xff\xff\xff",MyTxt); 一次性发完命令和结束符

     注:这里发送16进制是用\xff,若不明白"\"使用法,自行百度"c语言转义字符"。

接下来就可以来实际建立工程了

1.第一步建立工程:

2、选择路径,并设置名称

3、根据自己购买的型号选择对应的型号,型号可以在屏幕的背后看到,如果看不懂型号可以查看这里

 

 4、选择显示方向和字符编码,字符编码如果没有特殊需求,建议使用GB2312编码,目前中文输入法只支持GB2312,请确保单片机端与串口屏的编码一致,避免使用时乱码,

5、点击ok键,工程建立完成

6、新建的工程如下所示 

 7、切换到Program.s,并在page指令之前添加如下配置

 

8、添加字库(可以只添加本工程使用的部分字库)根据需要设置字高,编码(请务必与工程编码保持一致)

9、保存字库 ,添加好后在左下角窗口显示

接下来可以添加显示页面以及控件了,首先添加Program.s文件,此文件是系统初始化代码,全局变量定义。sys0、sys1、sys2为全局变量只支持int型变量。bauds为定义波特率9600;bkcmd设置在执行错误时会返回数据。

 

 

 在更新电流显示的时候只需给串口屏发送以下字符串

x0.val=250   
x1.val=250
x2.val=250   
x3.val=250 
x4.val=250
x5.val=250           

显示效果如下;

 二、配置DSP28335的SCI模式配置

管脚配置:

void InitSciaGpio()
{
   EALLOW;

	GpioCtrlRegs.GPBPUD.bit.GPIO36 = 0;	   // Enable pull-up for GPIO36 (SCIRXDA)
	GpioCtrlRegs.GPBPUD.bit.GPIO35 = 0;	   // Enable pull-up for GPIO35 (SCITXDA)

	GpioCtrlRegs.GPBQSEL1.bit.GPIO35 = 3;  // Asynch input GPIO35 (SCITXDA)
    GpioCtrlRegs.GPBQSEL1.bit.GPIO36 = 3;  // Asynch input GPIO36 (SCIRXDA)

	GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 1;   // Configure GPIO36 for SCIRXDA operation
	GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 1;   // Configure GPIO35 for SCITXDA operation	
    EDIS;
}

SCI工作方式和参数设置

	void scic_echoback_init()
{
    ScibRegs.SCICCR.all = 0x0007;//1位停止位,无奇偶校验位,8个数据位
	ScibRegs.SCICTL1.all=0x003;
    ScibRegs.SCICTL2.all=0x003;
    ScibRegs.SCICTL2.bit.TXINTENA= 1;
    ScibRegs.SCICTL2.bit.RXBKINTENA= 1;
    #if(CPU_FRQ_150MHZ)
    ScicRegs.SCIHBAUD = 0x0001;// 9600 baud 
    ScibRegs.SCILBAUD = 0x00E7;
    #endif
    ScibRegs.SCICTL1.all=0x023;

}

发送函数

void scic_msg(char * msg)
{
    int i;
    i=0;
    while(msg[i]!='\0')
        {
            scic-xmit(msg[i]);
            i++;
        }

}

main函数:

void main(void)
{
    char *msg;
    msg="x0.val=250\0";
    scic_msg(msg);
}

这样就可以实现显示了。功能比较简单,其他功能可以详细参考使用手册进行二次开发。

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: STM32F103ZET6是一款32位的Cortex-M3内核微控制器,它具有强大的性能和丰富的外设。淘晶驰则是一种串口屏,可以通过串口与单片机进行通信实现人机交互界面的控制。 首先,STM32F103ZET6需要配置其串口外设,选择合适的波特率、数据位、停止位和校验位等参数,使其与淘晶驰串口屏保持一致。然后,根据规定的通信协议和命令集,通过串口发送相应的指令给淘晶驰串口屏。 在通信过程中,STM32F103ZET6可以发送各种控制指令给淘晶驰串口屏,例如显示特定的字符串、绘制图像或者修改屏幕背光等等。同时,淘晶驰串口屏也可以将一些信息返回给STM32F103ZET6,例如触摸屏的坐标或者一些按钮的状态等等,从而实现交互功能。 为了确保通信的稳定性和正确性,我们可以在STM32F103ZET6和淘晶驰串口屏之间添加一些错误检测和纠正的机制,如校验和、重发机制等。同时,为了方便开发和调试,可以使用USART或者UART进行串口通信,通过调试助手等工具来验证通信的正确性。 总之,对于STM32F103ZET6与淘晶驰串口屏通信,首先需要配置适当的串口参数,然后按照通信协议和命令集,通过串口发送和接收指令,实现单片机与串口屏之间的信息交互。这样就可以实现各种人机交互界面控制的功能。 ### 回答2: stm32f103zet6是一款由STMicroelectronics(意法半导体)推出的微控制器芯片,而淘晶驰串口屏是一种带有串口通信功能的液晶显示屏。 要实现stm32f103zet6与淘晶驰串口屏通信,首先需要确保它们之间的串口通信参数一致,包括波特率、数据位、停止位和校验位等。 在stm32f103zet6上,我们需要配置相应的串口功能模块(比如USART)以及相关的引脚,将其与淘晶驰串口屏的串口通信引脚连接起来。 接下来,在stm32f103zet6的软件程序中,我们可以使用相应的串口通信库函数来实现淘晶驰串口屏的数据交互。首先,我们可以使用串口发送函数将需要传输给淘晶驰串口屏的数据发送出去。例如,使用USART_SendData函数将数据传送到串口缓冲区。然后,我们可以使用相应的串口接收函数来接收淘晶驰串口屏返回的数据。例如,使用USART_ReceiveData函数从串口缓冲区读取数据。 在实际的应用中,stm32f103zet6可以通过串口与淘晶驰串口屏进行双向的数据传输。例如,我们可以通过发送指令或数据给淘晶驰串口屏来控制其显示内容、亮度等属性。同时,我们也可以通过接收淘晶驰串口屏返回的数据来获取相关的状态信息,如温度、触摸输入等。 总之,要实现stm32f103zet6与淘晶驰串口屏通信,需要合理配置串口通信参数、连接引脚,并在软件程序中使用相应的串口库函数进行数据的发送和接收。 ### 回答3: stm32f103zet6与淘晶驰串口屏通信的过程如下: 1. 首先,我们需要在stm32f103zet6上配置串口,使其能够与淘晶驰串口屏进行通信。在stm32f103zet6上选择一个可用的串口(如USART1),并配置相应的引脚作为串口通信引脚。 2. 接下来,我们需要编写相应的代码来实现淘晶驰串口屏通信。首先,在代码中引用串口通信所需的库文件,并进行必要的初始化设置。然后,通过发送指令和接收指令的方式与淘晶驰串口屏进行通信。 3. 在发送指令时,我们可以使用串口发送函数向淘晶驰串口屏发送特定的命令或数据。根据淘晶驰串口屏通信协议,将需要发送的指令或数据传递给相应的发送函数即可。 4. 在接收指令时,我们可以使用串口接收函数从淘晶驰串口屏接收返回的数据或状态信息。通过调用相应的接收函数,我们可以获取淘晶驰串口屏返回的数据并进行处理。 5. 在进行通信时,还需要注意设置合适的波特率、数据位、停止位、奇偶校验等参数,以保证通信的正确性和稳定性。 总之,通过正确配置stm32f103zet6的串口并编写相应的通信代码,我们可以实现淘晶驰串口屏通信,从而实现数据的发送和接收。同时,我们还需要遵循淘晶驰串口屏通信协议,确保通信的正常进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值