当前位置: 首页 > news >正文

C#里与嵌入式系统W5500网络通讯(6)

在前面的代码里,可以看到下面这行:

setSHAR(pnetinfo->mac);

这里可以看到,pnetinfo->mac是前面定义的MAC地址内容。

但是它是怎么样设置到寄存器里的呢?

其实setSHAR函数是一个宏定义:

#define setSHAR(shar) \WIZCHIP_WRITE_BUF(SHAR, shar, 6)

为什么采用宏,而不是采用函数呢?

因为嵌入式为了节省调用栈和时间,一般不建议采用多函数调用。

不过,如果采用比较大的内存和比较快的CPU,这些就无所谓了。

WIZCHIP_WRITE_BUF(寄存器地址, 源数据缓冲区, 写入字节数);

参数

  1. SHAR

    • 寄存器地址,代表 Source Hardware Address Register(源硬件地址寄存器)。
    • 该寄存器存储设备的 MAC 地址(物理地址),长度为 6 字节。

相关文章:

  • ES知识合集(四):高级篇
  • Odoo 为特定产品主数据设置质检控制点,以实现在采购收货或生产过程中自动触发质量检查
  • 【Elasticsearch】分词机制详解(含实战案例)
  • Vue动态路由
  • webuploader分片上传示例,服务端上传文件到腾讯云CDN Teo 应用示例
  • 《Elasticsearch 分布式搜索在聊天记录检索中的深度优化》
  • Boost dlib opencv vs2022 C++ 源码安装集成配置
  • Vue3 + TypeScript + Element Plus 使用【设置表格列宽,组合式函数 hook】在原有页面实现表格列宽设置本地持久化实例总结
  • 使用 FastMCP 实现 Word 文档与 JSON 数据互转的 Python 服务
  • C++ RPC 远程过程调用详细解析
  • STM32 vs RT1176:正交编码器实现原理与工程实践全解析
  • [智能客服project] AI提示词配置 | 主协调器 | 闲鱼协议工具
  • 是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
  • PyCharm 中更改缓存和插件目录
  • 19.vue.js的style的lang=scss、less(2)
  • 函数式编程 stream流 lambda表达式
  • 龟兔赛跑算法(Floyd‘s Cycle-Finding Algorithm)寻找重复数
  • UI设计中的大数据可视化:让数据“说话”
  • NuttX 调度器源码学习
  • OD 算法题 B卷【路灯照明II】
  • 网站开发论文英文资料/seo案例模板
  • 网站制作最流行软件/企业网站开发公司
  • 做英文网站怎么赚钱/百度推广后台登录入口官网
  • 招聘网站可做哪些推广方案/360推广
  • 婚纱摄影网站开发背景/网络推广是指什么
  • 怎么用手机做网站教程/重庆网站推广专家