迪文科技论坛

 找回密码
 立即注册
搜索
查看: 459|回复: 8

【提问】与GD32通讯请教

[复制链接]

4

主题

8

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2023-6-26 08:22:35 | 显示全部楼层 |阅读模式
使用屏幕DMG48270C043_03WTR做显示,控制器用的是GD32F103C8T6,现在问题是,控制器发送给屏幕数据一切正常,所有变量都能正确显示。但控制器一直接收到屏幕发送过来的信息,即使不做任何操作,控制器串口一直也能接收到无规律的信息,会把正常操作的数据流都给冲掉。串口接收中断的程序如下。
请问这个可能是什么原因造成的。屏幕与控制器是直连的,没有经过电平转换。



void USART1_IRQHandler(void)//串口接收中断
{
    unsigned char i;
    if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//接收中断
    {
        USART_ClearITPendingBit(USART1,USART_IT_RXNE); //         清中断标志
        for(i=0;i<RXD_LCD_MAX_LEN-1;i++)
            Usart1_RxBuffer = Usart1_RxBuffer[i+1];
        Usart1_RxBuffer[RXD_LCD_MAX_LEN-1] = USART_ReceiveData(USART1);
        if((Usart1_RxBuffer[0]==FRAME_START_H)&&(Usart1_RxBuffer[1]==FRAME_START_L))//帧头正确,进行解码
        {
             if(Usart1_RxBuffer[4]==LCD_ADD_H)//地址高位也正确
            {
                switch (Usart1_RxBuffer[5])//根据地址低位判断需要更新的变量
                {
                    case LCD_ADD_SET_V:   SetVChangeFlag = ON;
                                          break;
                    case LCD_ADD_PUMP_S:  PumpSpeedChFlag = ON;
                                          break;
                    case LCD_ADD_O_ENABLE:OutChangeFlag = ON;
                                          break;
                    default:break;
                }
            }
        }
    }
}  


回复

使用道具 举报

0

主题

857

回帖

5450

积分

论坛元老

Rank: 8Rank: 8

积分
5450
发表于 2023-6-26 13:10:58 | 显示全部楼层
您好,是不是给屏发指令,屏自动应答了 5A A5 03 82 4F 4B,下载附件这个无应答内核试试,放在DWIN_SET文件夹用SD卡下载。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

4

主题

8

回帖

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2023-6-26 14:13:32 | 显示全部楼层
本帖最后由 orangelxlf 于 2023-6-26 14:14 编辑
DWIN_LZ 发表于 2023-6-26 13:10
您好,是不是给屏发指令,屏自动应答了 5A A5 03 82 4F 4B,下载附件这个无应答内核试试,放在DWIN_SET文件 ...

按您说的试了试,串口确实收不到数据了。但正常操作的串口数据也没有了。我就把这个文件删了,又下载了一遍,但控制器给屏幕发送的信息也收不到了。又下载了好几遍,控制器和屏幕之间的通讯完全断开了。
另外,前面说的收到的数据确实有82 4F  4B这些数据。但我给屏幕写数据是900毫秒一次,这些数据是一直都在接收。

回复

使用道具 举报

0

主题

857

回帖

5450

积分

论坛元老

Rank: 8Rank: 8

积分
5450
发表于 2023-6-26 15:06:09 | 显示全部楼层
4F  4B 是给屏发送82写指令后屏的自动应答,下载这个后不通讯,是显示屏的程序有写C51吗
回复

使用道具 举报

4

主题

8

回帖

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2023-6-26 15:17:48 | 显示全部楼层
本帖最后由 orangelxlf 于 2023-6-26 15:23 编辑
DWIN_LZ 发表于 2023-6-26 15:06
4F  4B 是给屏发送82写指令后屏的自动应答,下载这个后不通讯,是显示屏的程序有写C51吗 ...

控制器是用GD32F103C8,用的MDK5软件,算是C语言。显示屏的设置就是按照DGUS软件写的,是7.624版本。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

857

回帖

5450

积分

论坛元老

Rank: 8Rank: 8

积分
5450
发表于 2023-6-26 15:25:02 | 显示全部楼层
可以用电脑串口发指令,测试一下屏的通讯是否正常,前面下载的OS内核只是关闭了写指令的自动应答,显示屏里面没有开发C51的话不影响通讯的。
回复

使用道具 举报

4

主题

8

回帖

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2023-6-26 16:26:32 | 显示全部楼层
DWIN_LZ 发表于 2023-6-26 15:25
可以用电脑串口发指令,测试一下屏的通讯是否正常,前面下载的OS内核只是关闭了写指令的自动应答,显示屏里 ...

这个文件是不是把波特率也复位了?我把波特率改成9600了,恢复成115200就可以通讯了。这个文件也起作用了,没有乱七八糟的回传信息了,所有的信息都正常了。谢谢您的帮忙。
回复

使用道具 举报

4

主题

8

回帖

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2023-6-26 16:34:37 | 显示全部楼层
DWIN_LZ 发表于 2023-6-26 15:25
可以用电脑串口发指令,测试一下屏的通讯是否正常,前面下载的OS内核只是关闭了写指令的自动应答,显示屏里 ...

另外,关闭这个回传功能,只有这个文件这一种方式吗?在DGUS软件里面能不能设置呢?
回复

使用道具 举报

0

主题

857

回帖

5450

积分

论坛元老

Rank: 8Rank: 8

积分
5450
发表于 2023-6-26 16:40:34 | 显示全部楼层
通讯部分都是OS内核里面写的,刷无应答内核,或是写C51程序,一般都是下载一个无应答内核就行。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-4-15 07:35 , Processed in 0.035740 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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