关于串口升级的问题

2019-07-20 20:36发布

最近在做在串口升级的时候发现一个问题  
APP程序如下
int main(void)
{
        SCB->VTOR = FLASH_BASE |0x00010000;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  USART_Config();
        printf("你好 ");
        while(1)
        {
          

        }
}

当printf语句在while之前时没有打印
当printf语句在while内部时有打印
跳转程序为
JumpAddress = *(__IO uint32_t*) (user_code_address + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_MSP(*(__IO uint32_t*) user_code_address);
Jump_To_Application();

借鉴的是官方历程   

问题是什么呢?  
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-21 02:23
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 04:44
 精彩回答 2  元偷偷看……
漂泊的雨林
3楼-- · 2019-07-21 09:46
正点原子 发表于 2016-8-17 22:25
在USART_Config后面,加200ms延迟,再打印,试试.

我后来加延时确实可以 问题是为什么要加个延时呢,原子大大?
漂泊的雨林
4楼-- · 2019-07-21 15:02
while前跟while后 中间没差多长时间吧
ysq7120
5楼-- · 2019-07-21 20:13
那就只能解释串口配置没有马上生效。
漂泊的雨林
6楼-- · 2019-07-21 20:24
嗯 谢谢原子大大  

一周热门 更多>