搜索
bottom↓
回复: 4

AVR采用MODBUS与人机界面通信的问题

[复制链接]

出0入0汤圆

发表于 2013-3-16 16:57:05 | 显示全部楼层 |阅读模式
在做通信实验的时候,上网下了高手发的C语言源程序,有些问题很奇怪!就是定义的一些各功能函数,这些函数在main()里面不用写吗?难道不用执行吗??硬件会自动执行!如下断程序:

///////从机响应主机问询函数,function code : 03,读取多个寄存器值
void readRegisters(void)
{
        uint8 addr;
        uint8 tempAddr;
        uint16 result;
        uint16 crcData;
        uint8 readCount;
        uint8 byteCount;
        uint8  finsh;        //1完成  0出错
        uint16 i;
        uint16 tempData = 0;       
       
        //addr = (receBuf[2]<<8) + receBuf[3];
        //tempAddr = addr & 0xfff;       
        addr = receBuf[3];   
        tempAddr = addr;

        //readCount = (receBuf[4]<<8) + receBuf[5];        //要读的个数
        readCount = receBuf[5];   

        byteCount = readCount * 2;  
       
        for(i=0;i<byteCount;i+=2,tempAddr++)
        {
                getRegisterVal(tempAddr,&tempData);                       
                sendBuf[i+3] = tempData >> 8;                                          
                sendBuf[i+4] = tempData & 0xff;                       
        }
       
        //设备回应
        sendBuf[0] = localAddr;   
        sendBuf[1] = 3;           
        sendBuf[2] = byteCount;   
        byteCount += 3;           
        crcData = crc16(sendBuf,byteCount);
        sendBuf[byteCount] = crcData >> 8;
        byteCount++;
        sendBuf[byteCount] = crcData & 0xff;
       
        sendCount = byteCount + 1;
        beginSend();
}//void readRegisters(void)


哪位大侠能解说下吗??就是以上程序需不需要在主函数中查询!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入264汤圆

发表于 2013-3-16 17:34:41 | 显示全部楼层
当然不会自动执行了。肯定在某个地方调用了,直接或者间接。

出0入0汤圆

 楼主| 发表于 2013-3-16 17:46:49 | 显示全部楼层
mcu_lover 发表于 2013-3-16 17:34
当然不会自动执行了。肯定在某个地方调用了,直接或者间接。

但是我找遍整个程序,包括相关联的C程序,都没发现,没有调用!很奇怪啊!!就是这个附件,麻烦你看下!!

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-3-16 18:31:03 | 显示全部楼层
mcu_lover 发表于 2013-3-16 17:34
当然不会自动执行了。肯定在某个地方调用了,直接或者间接。

真的非常谢谢你啊,是有的,由于程序太多,刚才没找到!!现在已经找到了!!

出0入0汤圆

发表于 2013-3-16 18:40:10 | 显示全部楼层
在 main.c 裡的 checkComm0Modbus() 呼叫 .
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 02:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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