我在 ESP32 上运行以下 MicroPython 代码:
import network
wlan_sta = network.WLAN(network.STA_IF)
wlan_sta.active(True)
wlan_mac = wlan_sta.config('mac')
print("MAC Address:", wlan_mac) # Show MAC for peering
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
MAC Address: b'0\xae\xa4z\xa7$'
Run Code Online (Sandbox Code Playgroud)
我想以更熟悉的六对十六进制数字的格式显示它,如下所示:
MAC Address: AABBCC112233
Run Code Online (Sandbox Code Playgroud)
在网上搜索解决方案后,我尝试过:
print("MAC Address:", str(wlan_mac))但它的显示与不使用 str() 时相同
print("MAC Address:", hex(wlan_mac))但它会导致 TypeError: can't conversion bytes to int
print("MAC Address:", wlan_mac.hex())但它说 AttributeError: 'bytes' 对象没有属性 'hex'
我也对从 检索到的字节有点怀疑wlan_sta.config('mac')。我本来希望看到一些看起来更像的东西,b'\xaa\xbb\xcc\x11\x22\x33'而不是b'0\xae\xa4z\xa7$'。z 和 $ 对于应该是十六进制的东西来说似乎非常不合适,并且对于应该是六对数字的东西来说似乎太短了。
所以我的问题有两个: