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.

[参考译文] MSP432E401Y:map_FlashUserSet 设置的用户寄存器中的数据错误

Guru**** 2460850 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1481610/msp432e401y-map_flashuserset-is-setting-wrong-data-in-the-user-register

器件型号:MSP432E401Y

工具与软件:

团队成员、您好!

我们有一个定制板、因此为了获得唯一的 MAC ID、我们放置了一个 MAC ID 芯片。 其中、从 MAC ID 芯片读取后、我们已使用 MAP_FlashUserSet 写入用户寄存器0和1。 但它提供了错误的 MAC 地址。 因此、为了对其进行调试、我们在每一步中都打印了寄存器。

 MacID_arr = mac_id_READ (I2C_MAC_ID_SLAVE_1);
  for (i=0;i<6;i++)
    {
        UARTprintf ("MacID_arr[%d]=%x\n"、i、MacID_arr[i]);//打印从 IC 读取的 MAC ID
    }

//初始执行解锁序列

Map_FlashUserGet (&ui32User0、&ui32User1);
   UARTprintf (" 1 User0 %x \n"、ui32User0);
   UARTprintf ("1用户1 %x\n"、ui32User1);

//初始化 从芯片读取到寄存器的 MAC ID

ui32User0 =(MacID_arr[0]和0xff)|((MacID_arr[1]和0xff)<< 8)|((MacID_arr[2]和0xff)<< 16);
   ui32User1 =(MacID_arr[3]和0xff)|((MacID_arr[4]和0xff)<< 8)|((MacID_arr[5]和0xff)<< 16);
   UARTprintf ("2 User0 %x\n"、ui32User0);
    UARTprintf ("2 User1 %x\n"、ui32User1);

//写入用户寄存器0和1
   Map_FlashUserSet (&ui32User0、&ui32User1);
   UARTprintf ("4 User0 %x\n"、ui32User0);
   UARTprintf ("4 User1 %x\n"、ui32User1);

//读取用户寄存器0和1
   Map_FlashUserGet (&ui32User0、&ui32User1);
         UARTprintf ("3 User0 %x\n"、ui32User0);
                    UARTprintf ("3 User1 %x\n"、ui32User1);

端子输出

您能告诉我们这里有什么问题吗?

谢谢你。

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

    您好!

     我想问题就在您的下面一行。  

       Map_FlashUserSet (&ui32User0、&ui32User1);

     当我更改为    MAP_FlashUserSet (ui32User0、ui32User1)时、它对我有效。 请参见下文。  如果要使 USER0/User1永久、则需要调用 FlashUserSave()。 但是、如果您始终从外部 MAC ID 芯片读取数据、那么您所做的就是没有问题。