AVR采用MODBUS与人机界面通信的问题
在做通信实验的时候,上网下了高手发的C语言源程序,有些问题很奇怪!就是定义的一些各功能函数,这些函数在main()里面不用写吗?难道不用执行吗??硬件会自动执行!如下断程序:///////从机响应主机问询函数,function code : 03,读取多个寄存器值
void readRegisters(void)
{
uint8 addr;
uint8 tempAddr;
uint16 result;
uint16 crcData;
uint8 readCount;
uint8 byteCount;
uint8finsh; //1完成0出错
uint16 i;
uint16 tempData = 0;
//addr = (receBuf<<8) + receBuf;
//tempAddr = addr & 0xfff;
addr = receBuf;
tempAddr = addr;
//readCount = (receBuf<<8) + receBuf; //要读的个数
readCount = receBuf;
byteCount = readCount * 2;
for(i=0;i<byteCount;i+=2,tempAddr++)
{
getRegisterVal(tempAddr,&tempData);
sendBuf = tempData >> 8;
sendBuf = tempData & 0xff;
}
//设备回应
sendBuf = localAddr;
sendBuf = 3;
sendBuf = byteCount;
byteCount += 3;
crcData = crc16(sendBuf,byteCount);
sendBuf = crcData >> 8;
byteCount++;
sendBuf = crcData & 0xff;
sendCount = byteCount + 1;
beginSend();
}//void readRegisters(void)
哪位大侠能解说下吗??就是以上程序需不需要在主函数中查询! 当然不会自动执行了。肯定在某个地方调用了,直接或者间接。 mcu_lover 发表于 2013-3-16 17:34 static/image/common/back.gif
当然不会自动执行了。肯定在某个地方调用了,直接或者间接。
但是我找遍整个程序,包括相关联的C程序,都没发现,没有调用!很奇怪啊!!就是这个附件,麻烦你看下!!
mcu_lover 发表于 2013-3-16 17:34 static/image/common/back.gif
当然不会自动执行了。肯定在某个地方调用了,直接或者间接。
真的非常谢谢你啊,是有的,由于程序太多,刚才没找到!!现在已经找到了!!{:smile:} 在 main.c 裡的 checkComm0Modbus() 呼叫 .
页:
[1]