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.

[参考译文] MSPM0G3507:有关 GPIO_WRITE 的问题()

Guru**** 2952510 points

Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1351344/mspm0g3507-question-regarding-gpio_write

器件型号:MSPM0G3507

当将 GPIO_Write 与基于索引的参数一起使用时、会导致意外行为。  

该函数会在末尾调用 DL_GPIO_setPins、该引脚使用一个所需位设置完整的32位寄存器、因此31位会丢失。

从我的观点来看 、GPIO_write 应调用 DL_GPIO_writePinsVal (x、y、z)。

使用 mspm0_SDK_2_00_00_03。  

我错了吗?TI 如何看待这种行为?

使用 MSPM0G3507并手动将 SPI 的1写入 cs 时、会导致3.3V 电源发生故障。  

来清除相应寄存器中的所有其他位。

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

    通过调用以下函数来存在类似的效果:  

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

    大家好、 

    这不应该影响所有32位。

    您是否在自己的电路板上对此进行了测试? 我建议您在 LaunchPad 上尝试使用 GPIO 控制。

    将 CS 引脚置为有效状态可能是其他3.3V 器件导致此问题。

    此外、对于低级驱动程序、DL、 DL_GPIO_setPins 可以正常工作、只需写入32位寄存器的单个位。

    /**
     *  @brief      Set a group of GPIO pins
     *
     *  @param[in]  gpio  Pointer to the register overlay for the peripheral
     *  @param[in]  pins  Pins to set high. Bitwise OR of @ref DL_GPIO_PIN.
     */
    __STATIC_INLINE void DL_GPIO_setPins(GPIO_Regs* gpio, uint32_t pins)
    {
        gpio->DOUTSET31_0 = pins;
    }

    该寄存器的说明为:

    9.3.39 DOUTSET31_0 (Offset = 1290h) [Reset = 00000000h]
    DOUTSET31_0 is shown in Figure 9-42 and described in Table 9-42.
    Return to the Summary Table.
    Writing 1 to a bit position in this register sets the corresponding bit in the DOUT31_0 register.

    有关详细说明、请参阅 TRM 9.2.2

    https://www.ti.com/lit/pdf/SLAU846

    向该寄存器写入0不执行任何操作。

    您能否向我展示您设置 CS 的代码会导致设置其他 DOUTSET31_0位?

    此致、

    赫利克

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

    尊敬的 Helic:

    很显然、我的错。 这似乎是由堆栈损坏引起的副作用。

    问题不再存在、ti_drivers_config 与 ti_msp_dl_config 的组合可能错误。

    此致  

    西格弗里德