STM32L476 IAP跳转到APP之后串口无法输出

2019-07-14 15:09发布

大家好!我最近在做STM32L476的IAP 功能,目前已经实现从Bootloader到APP的跳转。但是出现的问题是,在Bootloader中使用到了串口1,跳转到APP的时候串口1无法输出,但是外部中断、定时器中断和GPIOB都正常工作。我查了huart1.gState  状态为HAL_UART_ERROR_NONE,告诉我么有错误。
我想请教下哪位大神遇到过类似问题?问题卡在了if(huart->gState == HAL_UART_STATE_READY)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
yysdywerw
1楼-- · 2019-07-15 13:19
TOPCB 发表于 2018-12-18 18:06
从huart->gState == HAL_UART_STATE_READY这里分析,应该是串口没有初始化准备好,发生这种情况以后,建议再重新初始化一次试试。再确定一下huart->gState的值是多少。

谢谢你的提醒,我在代码里面直接重复了一句,初始化的就能用了,不清楚原理,但是目前就先这样用,mark一下,以后有时间回来好好研究依一下。       
  MX_USART1_UART_Init();
  MX_UART4_Init();
printf("This is APP ");
yysdywerw
2楼-- · 2019-07-15 16:26
本帖最后由 PaulRambo 于 2018-2-11 15:22 编辑

感谢各位的回复!等我整理好我最近的IAP的资料,我打算开个帖子分享给论坛的各位。下面是我代码的输出,循环在APP与Bootloader之间跳转,能够启动外设串口1、4、Systic、Timer2、LED、IIC等,应该可以说明运行正常了。
AUTO Jump to APP
This is APP
DS3231  Time is 2018/02/11 1W  15:16:32
Soft reset in 3 secs
  3  2  1
This is Bootloader
DS3231  Time is 2018/02/11 1W  15:16:35
GSM is Alive

+CSQ = 23

AUTO Jump to APP
This is APP
DS3231  Time is 2018/02/11 1W  15:16:52
Soft reset in 3 secs
  3  2  1
This is Bootloader
DS3231  Time is 2018/02/11 1W  15:16:55
GSM is Alive
lee_st
3楼-- · 2019-07-15 18:10
代码有问题
lee_st
4楼-- · 2019-07-15 19:42
 精彩回答 2  元偷偷看……

一周热门 更多>