3445|6

1411

帖子

3

TA的资源

版主

楼主
 

【拓普微智能显示模块测评】5.开发板NUCLEO-F746ZG与智能显示模块通讯 [复制链接]

为了能够使用开发板NUCLEO-F746ZG与智能显示模块建立联系,本想着很简单的一件事情,可走了不少的弯路,费了一点周折。

 

先说遇到的囧事:

(1)NUCLEO-F746ZG开发板的UART8不能使用。使用STM32CubeMX配置完成后,写完程序,开发板定时发送数据,使用USB转TTL的工具监测发送数据,发现一直没有数据发出。我简单看了一下时钟配置:UART8的时钟与LPTIM在一起,是不是这个原因,我还得好好看看数据手册查找一下。

使用UART7一点问题没有,反复验证UART8始终没有数据发出,很奇怪。

 

(2)TTL转RS232模块,这个以前从网上买的,给我留了一个大坑:它的DB9定义中2脚和3脚定义是反的,本来2脚应该是RXD,3脚是TXD,没想到2脚是TXD,3脚是RXD。

让我一顿好测试呀,换了模块,飞线,折腾半天。

 

前两个问题解决以后,那就简单多了。在程序中定时发送数据:

void SendHIM(uint16_t cmd, uint8_t *Tdata,uint16_t CharLen)
{
    uint16_t   i=0;
  
    SendBuf_COM[0]=FrameHeader;         //0xAA
    SendBuf_COM[1]=cmd;                 //命令
    SendBuf_COM[2+CharLen] = FrameEnd>>24;
    SendBuf_COM[3+CharLen] = (FrameEnd>>16)&0xff;
    SendBuf_COM[4+CharLen] = (FrameEnd&0xffff)>>8;
    SendBuf_COM[5+CharLen] = FrameEnd&0xff;
 
    if(CharLen>0){  
      for(i=0; i<CharLen; i++) //数据
      {
          SendBuf_COM[2+i]=*(Tdata++);
      }      
    }

    sendCount=6+CharLen; //发送数据长度

    HAL_UART_Transmit(&huart7,(uint8_t*)SendBuf_COM,sendCount,1000);	//发送接收到的数据
		while(__HAL_UART_GET_FLAG(&huart7,UART_FLAG_TC)!=SET);		//等待发送结束

}

 

另外我把屏的命令定义了,想用的可以随时复制粘贴:

//Parameter setting
#define       CMD_ShakeHands                     0x30          //用于确认屏是否连接正常
#define       CMD_ReadVersion                    0x31          //读版本号
#define       CMD_ReadPageNumber                 0x32          //读取当前正在显示的页面 ID
#define       CMD_TouchCoordinatesBack           0x72   //0X73 //自动返回触摸位置坐标
#define       CMD_TouchDataBack                  0x77          //自动返回数据(键盘录入数据或触摸键运算操作数据) 
#define       CMD_TouchIDback                    0x78          //自动返回页面 ID 和触摸键 ID
#define       CMD_SetWorkMode                    0xE0          //设定模块的通信波特率、触摸返回码、文本显示模式
#define       CMD_CutoverProject                 0xE1          //切换到指定工程并显示
#define       CMD_SetTouchScreenCalibration      0xE4          //设定触摸屏进入校准模式
#define       CMD_SetScreensaver                 0x5E          //设置进入屏保时间和屏保状态下的背光亮度
#define       CMD_SetBacklight                   0x5F          //设置背光亮度
#define       CMD_SetBuzzerDuration              0x79          //设置蜂鸣器 1 次的鸣叫时间
#define       CMD_BuzzerControl                  0x7A          //控制蜂鸣器打开关闭、声音频率、时间长短
#define       CMD_SetClock                       0x9C          //设置模块日期时间
#define       CMD_ReadClock                      0x9B          //读取模块日期时间
#define       CMD_WriteFlash                     0x90          //写入数据到 flash (Flash 中数据断电可保存)
#define       CMD_ReadFlash                      0x91          //读取 flash 数据
#define       CMD_ReadUSRBINData                 0x93          //读取 USR.BIN 中用户文件数据
#define       CMD_FormatInternalStorage          0xE2          //格式化内部存储器(工程包,Flash 数据,加密设定都会被清空)
#define       CMD_DecryptInternalMemory          0xE3          //用于内部存储器盘加密的情况下, 对内部存储器进行一次解锁

//Display control
#define       CMD_PageDisplay                    0x70          //显示指定的页面(画面)
#define       CMD_SetControlFontColor            0x7E          //更改页面中字符串变量或数字变量的字体颜色
#define       CMD_SetControlBackgroundColor      0x7F          //改变页面中字符串变量或数字变量的背景色
#define       CMD_SetFont                        0xE7          //设置字库国家码和外扩 Codepage
#define       CMD_RefreshControl                 0xE8          //设定当前画面暂停刷新或开始刷新,暂停刷新后触摸键无响应、变量显示不更新数据。

//Variable read and write
#define       CMD_WriteNumericVariables          0x82          //写数字变量 可往 16/32/64 位数字变量地址中连续写入多个数据
#define       CMD_ReadNumericVariables           0x83          //读数字变量 读取 16/32/64 位数字变量地址中的连续多个数据
#define       CMD_WriteCurveData                 0x4D          //曲线数据写 对曲线图数据写入, 控制曲线图的显示,以修改的方式进行刷新
#define       CMD_PushLefttoWriteCurveData       0x4E          //左推进写曲线数据 对曲线图数据写入, 以推进的方式控制曲线图的显示有利于对数据变化随时间变化的曲线显示减小传输的数据量
#define       CMD_Set8bitSystemRegister          0x3B          //8 位系统寄存器设定 用于控制计数寄存器的工作方式
#define       CMD_ReadSystemRegisterData         0x3C          //读取系统寄存器数据 读取寄存器中数据
#define       CMD_WriteBitmapData                0x4B          //位图数据写 单色位图数据写入, 控制位图显示
#define       CMD_WriteBitmapCompressedData      0x4C          //位图压缩数据写 单色位图压缩数据写入, 可减小数据量,控制位图显示
#define       CMD_WriteStringVariable            0x42          //写字符串变量
#define       CMD_ReadStringVariable             0x43          //读字符串变量 对字符串变量进行读写, 可用于控制字符串控件显示
#define       CMD_FillStringVariables            0x46          //填充字符串变量
#define       CMD_Write16bitNumericVariable      0x3D          //写 16 位数字变量  对 16 位数据变量进行读写, 可用于控制:数值控件显示, 图标索引显示,十进位图标显示进度条显示, VPK 操作等 0x3E 读 16 位数字变量
#define       CMD_Read16bitNumericVariable       0x3E          //填充 16 位数字变量
#define       CMD_Fill16bitNumericVariable       0x3F          //填充 16 位数字变量
#define       CMD_Write32bitNumericVariable      0x44          //写 32 位数字变量对 32 位数据变量进行读写。可用于控制数值控件显示控制十进制图标显示 
#define       CMD_Read32bitNumericVariable       0x45          //读 32 位数字变量
#define       CMD_Fill32bitNumericVariable       0x47          //填充 32 位数字变量
#define       CMD_Write64bitNumericVariable      0x48          //写 64 位数字变量
#define       CMD_Read64bitNumericVariable       0x49          //读 64 位数字变量 对 64 位数据变量进行读写。可用于控制数值控件显示
#define       CMD_Fill64bitNumericVariable       0x4A          //填充 64 位数字变量
#define       CMD_VariableFlashDataExchange      0x94          //变量与 Flash 数据交换 对变量与 Flash 之间进行数据交换
#define       CMD_WriteusrbinFiletoVP            0x95          //写 usr.bin 文件到 VP 从 usr.bin 文件中读取数据到 VP 变量中


#define       FrameHeader                        0xAA          //帧头
#define       FrameEnd                           0xCC33C33C    //帧尾

 

一切准备就绪,编译完成后,下载程序,请看效果:

这次只是简单的开发板与显示屏建立联系,程序就不上传了,等我把程序整理完成后,把功能做进去再分享给大家。

 

最新回复

非常好  详情 回复 发表于 2021-11-10 18:11
点赞 关注
个人签名

没有什么不可以,我就是我,不一样的烟火! 

 
 

回复
举报

6802

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

网上买的TTL转RS232模块 质量有好有坏

点评

可不是嘛,一不小心就坑住了  详情 回复 发表于 2021-11-4 09:02
 
 
 

回复

1411

帖子

3

TA的资源

版主

板凳
 
网上买的TTL转RS232模块 质量有好有坏

可不是嘛,一不小心就坑住了

 
 
 

回复

7158

帖子

2

TA的资源

版主

4
 

UART8从图上看,确实需要LPTIM的支持。

点评

有可能呀,等我过两天好好看看到底是什么原因  详情 回复 发表于 2021-11-4 13:26
 
 
 

回复

1411

帖子

3

TA的资源

版主

5
 
wangerxian 发表于 2021-11-4 10:33 UART8从图上看,确实需要LPTIM的支持。

有可能呀,等我过两天好好看看到底是什么原因

个人签名

没有什么不可以,我就是我,不一样的烟火! 

 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

6
 

支持一下,有注释好看多了。

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1

帖子

1

TA的资源

一粒金砂(初级)

7
 
非常好
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表