C#里与嵌入式系统W5500网络通讯(6)
在前面的代码里,可以看到下面这行:
setSHAR(pnetinfo->mac);
这里可以看到,pnetinfo->mac是前面定义的MAC地址内容。
但是它是怎么样设置到寄存器里的呢?
其实setSHAR函数是一个宏定义:
#define setSHAR(shar) \WIZCHIP_WRITE_BUF(SHAR, shar, 6)
为什么采用宏,而不是采用函数呢?
因为嵌入式为了节省调用栈和时间,一般不建议采用多函数调用。
不过,如果采用比较大的内存和比较快的CPU,这些就无所谓了。
WIZCHIP_WRITE_BUF(寄存器地址, 源数据缓冲区, 写入字节数);
参数:
-
SHAR
- 寄存器地址,代表 Source Hardware Address Register(源硬件地址寄存器)。
- 该寄存器存储设备的 MAC 地址(物理地址),长度为 6 字节。