我正在使用带有 ST (I-CUBE-LRWAN) 扩展包的 Discovery Kit B-L072Z-LRWAN,但我需要从 Murata(手册)模块获取设备注册 PIN,以便在我的LoRa-云帐户。
我知道手册描述了如何通过 UART 做到这一点,但我尝试了所有的方法和所有的波特率,但我无法从板上得到任何响应(我使用 minicom 并连接到 USB-TTL 转换器)
任何帮助都非常受欢迎!
提前致谢!!
您为该芯片和软件使用了错误的手册。链接的手册适用于一些 Semtech 实施。您正在使用 ST 的Murata CMWX1ZZABZ-xxx软件(即 I-CUBE-LRWAN)。(部件号末尾的数字区分不影响功能的 STM32 微控制器 78/91。)
我不直接知道“设备注册 PIN”是什么意思,但我猜你正在寻找设备的 DevEui。
DevEui 有两个选项。一个是由 I-CUBE-LRWAN 计算的,是从 CMX1ZZABZ 的内部寄存器使用HW_GetUniqueId
. 另一个选项是使用以下定义进行设置:
/*!
* When set to 1 DevEui is LORAWAN_DEVICE_EUI
* When set to 0 DevEui is automatically generated by calling
* BoardGetUniqueId function
*/
#define STATIC_DEVICE_EUI 0
/*!
* Mote device IEEE EUI (big endian)
*
* \remark see STATIC_DEVICE_EUI comments
*/
#define LORAWAN_DEVICE_EUI { IEEE_OUI, 0x01, 0x01, 0x01, 0x01, 0x01 }
这些可以在commisioning.h:106-118
文件中找到。
里面找到硬件派生的DevEui的实现mlm32l0xx_hw.c:275-290
/**
* @brief This function return a unique ID
* @param unique ID
* @retval none
*/
void HW_GetUniqueId(uint8_t *id)
{
id[7] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 24;
id[6] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 16;
id[5] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 8;
id[4] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3));
id[3] = ((*(uint32_t *)ID2)) >> 24;
id[2] = ((*(uint32_t *)ID2)) >> 16;
id[1] = ((*(uint32_t *)ID2)) >> 8;
id[0] = ((*(uint32_t *)ID2));
}