我是靠谱客的博主 爱笑洋葱,最近开发中收集的这篇文章主要介绍FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前对串口各模块的设计都做了相关介绍。这里介绍串口屏的相关知识。

本次项目使用的串口屏型号是陶晶驰串口屏TJC3224T024_011,这个型号的串口屏的资料在官网可以找到。本文抛转引玉,简单介绍以便在本工程中更好的应用。

下图是该串口屏的实物图:

一般地,使用单片机或者嵌入式MCU控制串口屏,都会用到串口,同样地,在FPGA中实现也是类似,不过稍微复杂,具体代码设计过程中有以下问题需要注意。

 

Q1:FPGA向HMI发送命令,要使HMI中的某个文本控件显示相应的数据,该如何操作呢?

ASR:根据HMI指令集,串口屏的指令数据为字符串数据格式,如文本控件t0,其内容属性txt,t0.txt表示文本控件的内容,当要改变t0的内容时,需要发送以下字符串命令:t0.txt="123"(整个指令就是一个字符串),当时用单片机串口发送时,需要执行以下程序,如:

Serial.print("t0.txt="你好"");
Serial.write(hexEND,3);

从中清楚看到,整条代码为一条字符串数据,而其属性txt属于字符串属性,所以要加上双引号,故有以上写法——整个括号内由两对双引号

在单片机C语言中," "表征这是一条字符串数据,并不需要考虑使用串口发送时是否会发送",因为在串口助手中,当以文本模式发送数据时,是默认不用用户自己加入" "的,同理在发送字符串时,总是会冠以" ",如使用sprintf,或者直接使用串口发送函数直接发送Serial.print(“a good boy!”)。

 

Q2:前面介绍了HMI的字符串指令,所以,使用FPGA发送字符串时是否要把最外面的双引号(表征字符串属性的双引号)发送出去呢?

回答:不需要,这只是表征这条数据是字符串数据,实际发送中不需要将其作为有效字符发送。同理,字符串结尾标识也不需要对外发送。故,如果需要在文本控件t0中显示123,只需要发送t0.txt=”123””12个字符;当然,该类型串口屏的结束指令命令是发送HEX的FF FF FF,所以,发送完第一条指令后,在其后再发送FF FF FF即可(16进制,3个)。所以用户书写指令代码时不必考虑过多,而只需关注所发送的字符串的内容即可。

NOTE数据指令和结束指令最好间隔开,因为这实际是两条指令,在使用ascii码表示时,两条指令可能会合并成一条数据,即t0.txt=”123””FF FF FF,这样理解的话,则指令格式不完全(没有明确的指令结束标志,当然,如果接受到第二个’”就自动识别为第一个指令那就ok,但实际并不清楚)。

整个串口屏的verilog代码设计,就是简单地通过串口发送指令在文本控件中显示相应的数据。有关串口屏幕内容的上位机设计,比较简单,这里不做过多介绍,网上可以找到教程。

到此,整个FPGA控制USART_HMI显示数据的工程就介绍完毕了。

最后

以上就是爱笑洋葱为你收集整理的FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍的全部内容,希望文章能够帮你解决FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部