硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5650|回复: 5
收起左侧

[有问必答] 请问有用迪文屏的大佬吗?

[复制链接]

32

主题

115

回帖

211

积分

高级会员

积分
211
发表于 2021-5-8 13:47:06 | 显示全部楼层 |阅读模式
我的屏幕是  DMG12800L101_01WTC,只有一个usart接口,我用的是TTL的接口,不知道对不对


我看手册,有一个指令,如图,发送这个指令就可以返回一个指令
微信截图_20210508133205.png
我用对应硬件的串口发送了指令,同时弄了接收中断,但是什么也接收不到。用stm32控制这个屏,难道不是这个方法吗?我蒙了。谢谢
代码,main函数
  1. u8 DWBuff[10] = {0};
  2. u8 DWCnt = 0;

  3. int main(void)
  4. {

  5.         Debug_USART1_Cfg();
  6.         DW_Cfg();
  7.         NVIC_DW_Cfg();
  8.         DW_USART3_SendByte(0x5A);
  9.         DW_USART3_SendByte(0xA5);
  10.         DW_USART3_SendByte(0x04);//长度
  11.         DW_USART3_SendByte(0x83);
  12.         DW_USART3_SendByte(0x00);
  13.         DW_USART3_SendByte(0x0F);
  14.         DW_USART3_SendByte(0x01);

  15.         while(1)
  16.         {
  17.                 if(DWCnt >=9)
  18.                 {
  19.                         DEBUG_USART1_SendStr(DWBuff,DWCnt);
  20.                         DWCnt = 0;
  21.                 }
  22.         }
  23.         
  24. }
复制代码
中断服务函数
  1. void USART3_IRQHandler(void)
  2. {
  3.         u8 ubRx = 0;
  4.         if(USART_GetITStatus( USART3, USART_IT_RXNE) != RESET)
  5.         {
  6.                 DWBuff[DWCnt++] = USART_ReceiveData(USART3);
  7.                 //USART_SendData(USART1,ubRx);
  8.                 USART_ClearITPendingBit(USART3, USART_IT_RXNE);
  9.         }
  10. }
复制代码
串口配置函数
  1. void DW_Cfg(void)
  2. {
  3.         USART_InitTypeDef USART_InitStructure;
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.         /*打开PB口和串口3的时钟*/
  6.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
  8.         /*配置PB10 PB11的复用功能,不能按位或*/
  9.         GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_USART3);
  10.         GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_USART3);
  11.         
  12.         /* USART3 Tx PB10的GPIO配置,参考官方库  */
  13.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  14.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  15.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

  16.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度这里比官方库慢
  18.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  19.         
  20.         /* USART3 Rx PB11的GPIO配置,参考官方库  */
  21.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  22.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  23.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  24.         
  25.         USART_InitStructure.USART_BaudRate = 115200;
  26.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  27.         USART_InitStructure.USART_StopBits = USART_StopBits_1;
  28.         USART_InitStructure.USART_Parity = USART_Parity_No;
  29.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  30.         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  31.         
  32.         USART_Init(USART3, &USART_InitStructure);
  33.         
  34.         USART_Cmd(USART3, ENABLE);
  35.         
  36.         USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
  37. }
复制代码
NVIC函数
  1. void NVIC_DW_Cfg(void)
  2. {
  3.         NVIC_InitTypeDef NVIC_InitStructure;

  4.         /* Enable the USARTx Interrupt */
  5.         NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
  6.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  7.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  8.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  9.         NVIC_Init(&NVIC_InitStructure);
  10. }
复制代码




回复

使用道具 举报

92

主题

293

回帖

569

积分

金牌会员

积分
569
发表于 2021-5-8 18:28:08 | 显示全部楼层
可以先用电脑的串口助手测试一下指令。还有就是屏的接口要看是RS232还是TTL。
回复

使用道具 举报

44

主题

242

回帖

374

积分

高级会员

积分
374
发表于 2021-5-8 20:23:30 | 显示全部楼层
我就是传说中的大佬。  看下diwen屏的配置文件,波特率对不对,帧头配置对不对,有没有crc。拿个示波器看一下。
回复

使用道具 举报

32

主题

115

回帖

211

积分

高级会员

积分
211
 楼主| 发表于 2021-5-10 10:02:49 | 显示全部楼层
feiante 发表于 2021-5-8 18:28
可以先用电脑的串口助手测试一下指令。还有就是屏的接口要看是RS232还是TTL。

怎么测试?迪文屏直接和电脑的串口连,然后用串口调试助手直接和迪文屏通信,发指令,看接到的数据?接口是8pin的,没有合适的转接口,转成usb转串口
回复

使用道具 举报

32

主题

115

回帖

211

积分

高级会员

积分
211
 楼主| 发表于 2021-5-10 10:04:09 | 显示全部楼层
snakeemail 发表于 2021-5-8 20:23
我就是传说中的大佬。  看下diwen屏的配置文件,波特率对不对,帧头配置对不对,有没有crc。拿个示波器 ...

你好,请问怎么看dwin屏的配置文件?我现在就是硬件接好,8pin的接口,然后用dwin的串口2和stm32f407连接,stm32发送这些指令码。dwin没有配置文件啊
回复

使用道具 举报

44

主题

242

回帖

374

积分

高级会员

积分
374
发表于 2021-5-10 14:32:37 | 显示全部楼层
把文档看一下,里面有介绍配置文件。至少有个出厂的默认波特率,你可以找到。很简单。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-16 15:41 , Processed in 0.038544 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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