This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3200:CC3200 MAC 地址

Guru**** 2564140 points
Other Parts Discussed in Thread: CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/883052/cc3200-cc3200-mac-address

器件型号:CC3200

您好!

我有3 - 4个 CC3200开发板。 出于某种原因、我会为所有这些器件获取相同的 MAC 地址。 我使用以下命令获取 MAC:

#define SL_MAC_ADDR_LEN              (6)

_u8 macAddressVal[sl_MAC_ADDR_LEN];
_u8 macAddressLen = sl_MAC_ADDR_LEN;

sl_NetCfgGet (sl_MAC_ADDRESS_Get、NULL、&macAddressLen、(_u8 *) macAddressVal);
UART_PRINT ("\NMAC:%d \n\r"、macAddressVal);

为什么我要为我的位置中的所有板获取 MAC 537067452 (0x2002FFBC)?

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Roman、

    您可能会打印 macAddressVal 的位置而不是内容。 您可以尝试以下操作吗?

    UART_PRINT ("\t MAC 地址:%02x:%02x:%02x:%02x:%02x:%02x:%02x"、
    macAddressVal[0]、
    macAddressVal[1]、
    macAddressVal[2]、
    macAddressVal[3]、
    macAddressVal[4]、
    macAddressVal[5]); 

    此致、

    Sarah

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sarah、

    感谢你的帮助。 它解决了该问题。 我有另一个问题。 我使用以下命令设置 MAC 地址:

    SL_Start (NULL、NULL、NULL);
    _u8 MAC_Address[6];
    MAC_Address[0]= 0x8;
    MAC_Address[1]= 0x0;
    MAC_Address[2]= 0x28;
    MAC_Address[3]= 0x22;
    MAC_Address[4]= 0x69;
    MAC_Address[5]= 0x31;
    SL_NetCfgSet (SL_MAC_ADDRE_SET、1、SL_MAC_ADDR_LEN、(_u8 *) MAC_Address);
    sl_Stop (0);
    UART_PRINT ("\NMAC 已设置:%d"、macAddressVal);//打印 MAC 地址值

    当我打印"macAddressVal"时、我获得:

    537067444 (0x2002FFB4)

    为什么我获得与我设置的值不同的值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    第一个问题的原因完全相同。 如果 macAddressVal 声明为 macAddressVal[sl_MAC_ADDR_LEN]、则您正在打印地址、而不是变量的值。 此外、还有不同的变量 macAddressVal[]和 MAC_Address[]。  此外,您不应使用零超时调用 sl_Stop()。

    也许您应该学习一些 C 语言的在线介绍课程。 它将使您能够比在论坛上等待答案更轻松地解决这些基本问题。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为我正在打印 macAddressVal、MAC 地址值。 不确定您在哪里看到问题:

    UART_PRINT ("\NMAC 已设置:%d"、macAddressVal);//打印 MAC 地址值

    就调用 sl_Stop (0)而言、TI 在  代码中使用了一个示例:

    1 _u8 MAC_Address[6];
    2 MAC_Address[0]= 0x8;
    3 MAC_Address[1]= 0x0;
    4 MAC_Address[2]= 0x28;
    5 MAC_Address[3]= 0x22;
    6 MAC_Address[4]= 0x69;
    7 MAC_Address[5]= 0x31;
    8 sl_NetCfgSet (sl_netcfg_MAC_address_set、1、sl_MAC_ADDR_LEN、(_u8 *) MAC_Address);
    sl_Stop (0);
    10 sl_Start (NULL、NULL、NULL);
    我之所以参加此论坛、是因为我需要有关代码的帮助。 其他人是否可以帮助我解决我的问题?
    谢谢你。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    代码如:

    _u8 macAddressVal[sl_MAC_ADDR_LEN];
    UART_PRINT ("\NMAC 已设置:%d"、macAddressVal); 

    显示变量 macAddressVal 的地址(存储器位置)、而不是变量的内容。 请使用上述 Sarah 提供的代码。

    您的问题与使用 C 语言进行编程的基本内容相关(例如指针的工作原理)。 我认为、在这个论坛上、有很多有效的方法来精简 C 编程的基础知识。 但是、如果您有任何疑问、可以随时提问。

    BTW... 32位 CPU 上的"%d" printf ()确实显示32b 有符号整数。 但 MAC 地址有6个字节。 这是第二件不正确的事情。

    1月