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.

[参考译文] MSPM0G3107:SysTick

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1521578/mspm0g3107-systick

器件型号:MSPM0G3107

工具/软件:

我的 App2 (0x2000)代码

            NVIC_DisableIRQ (UART0_INT_IRQn);
            NVIC_ClearPendingIRQ (UART0_INT_IRQn);
            SysTick ->CTRL = 0
            DL_SysTick disable()

            SCB->VTOR =(uint32_t)(0x00000000)
            NVIC_SystemReset();  

我成功跳转到 App1 (0x0000)
案例1:复位后、我跳转到 App1 (0x0000)

如果我在 App1中添加如下延迟、则初始化所有命令都运行良好
void SYSCFG_DL_init (void)
  SYSCFG_DL_initPower ();
  SYSCFG_DL_GPIO_init ();
  /*特定于模块的初始化*/
  SYSCFG_DL_SYSCTL_init ();
  SYSCFG_DL_SysTick_init ();
  delay_cycles (32000);
  SYSCFG_DL_UART_0_init ();
  SYSCFG_DL_DMA_init ();
}
CASE2:如果我删除延迟、就会错过我通过 UART 传输的一些起始字节
void SYSCFG_DL_init (void)
  SYSCFG_DL_initPower ();
  SYSCFG_DL_GPIO_init ();
  /*特定于模块的初始化*/
  SYSCFG_DL_SYSCTL_init ();
  SYSCFG_DL_SysTick_init ();
  SYSCFG_DL_UART_0_init ();
  SYSCFG_DL_DMA_init ();
}

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

    尊敬的 Saraswati:

    从您描述的问题来看、UART 可能会在 SysTick 计时器开始计数之前传输数据、从而导致缺少一些 起始字节。

    我建议先初始化 SYSCFG_DL_UART_0_init ()、然后初始化 SYSCFG_DL_SysTick _ init ()、看看这样是否有助于解决您的问题。

    此致、

    Bill