迪文科技论坛

 找回密码
 立即注册
搜索
查看: 436|回复: 2

【提问】有关C8283V1.8全串口的疑惑

[复制链接]

9

主题

26

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2025-3-5 12:24:52 | 显示全部楼层 |阅读模式
程序里有自动上传功能,测试研究发现是有输入就上传而不是有没有值改变,它发生上传的时候它本身的地址有没有存到哪个寄存器去?我想获取这个地址去发Modbus指令,怎么判断屏幕上有那个地址发生了值改变或者哪个数据自动上传了
回复

使用道具 举报

0

主题

5

回帖

385

积分

中级会员

Rank: 3Rank: 3

积分
385
发表于 2025-3-5 15:49:21 | 显示全部楼层
本帖最后由 lizhijun666 于 2025-3-5 15:52 编辑



系统地址0x0F00和0F01决定的,首先要打开CFG串口上传的使能开关,其次DGUS软件控件上面的自动上传需要打钩,最后使用DGUS函数读取0F00地址和0F01地址获取上传的数据。


/*****************************************************************************
        函 数 名 : Read_0xF00()
        功能描述 : 串口2数据自动上传
        输入参数 :
        输出参数 :
        修改历史 :
        1.日  期  : 2021年10月13日
                作  者  :
                修  改  : cuijia
*****************************************************************************/
void Read_0xF00()
{
                  u16  Va=Read_Dgus(0x0f00);
                        u16  V1=Read_Dgus(0x0f01);
                        if(((u8)(Va>>8))==0x5A)//获取5A标志,一般开启上传CPU就会产生5A标志
                        {           u8 i=0;u16 Temp=0;
                                   u8 Val[100]={0};            //5A A5 06 83 ADDR Len XX XX 组织相关数据发送
                                         Val[0] = DTHD1;
                                        Val[1] = DTHD2;
                                         Val[2] = (((u8)V1)<<1)+4;
                                         Val[3] = 0x83;
                                        Val[4]=(u8)Va;
                                        Val[5]=(u8)(V1>>8);
                                         Val[6]=(u8)V1;
                                         for(i=0;i<(u8)V1;i++)
                                        {
                                                  Temp=Read_Dgus(((Val[4]<<8)+Val[5]+i));
                                                  Val[7+2*i]=(u8)(Temp>>8);
                                                  Val[8+2*i]=(u8)(Temp);
                                         }
#if UART2_ENABLE                                                        
                uart_data_send(Val,2,DATA_UPLOAD_UART2,CRC_CHECK_UART2);
#endif        
#if UART3_ENABLE                                         
          uart_data_send(Val,3,DATA_UPLOAD_UART3,CRC_CHECK_UART3);
#endif        
#if UART4_ENABLE                                         
                                        uart_data_send(Val,4,DATA_UPLOAD_UART4,CRC_CHECK_UART4);
#endif        
#if UART5_ENABLE                                         
          uart_data_send(Val,5,DATA_UPLOAD_UART5,CRC_CHECK_UART5);        
#endif                                       
                                        Write_Dgus(0x0f00,0);Write_Dgus(0x0f01,0);
                        }
}

本帖子中包含更多资源

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

x
回复

使用道具 举报

9

主题

26

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
 楼主| 发表于 2025-3-6 13:37:03 | 显示全部楼层
感谢,成功截取到地址
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-18 19:01 , Processed in 0.035211 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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