could not stop Cortex_M device!求助啊,串口和FSMC驱动LCD冲突?

2019-07-21 05:19发布

如题,
主程序如下
 SystemInit();
 USART_Config();
 printf("0123 ");
 printf("LOVE ");
 ili9320_Initializtion();
 printf("0");
 ili9320_Clear(Black);
 printf("1");
    ili9320_DisplayStringLine(Line1, "    12 WhyFly Team    ",Red,Green);
 if(DeviceCode==0x9320)
 {
 ili9320_DisplayStringLine(Line2,"        DeviceCode 9320",Red,Green);
 }
直接下载进去执行,每次复位,串口只能输出123 LOVE,过一会儿就死机了,想再下程序都不行,显示could not stop Cortex_M device,
必须复位,然后重新插ULINK才能再下。
注释掉ili9320_Initializtion后,串口正常输出123 LOVE O13;
注释掉所有串口有关的东西后,LCD正常显示字符;
用ULINK单步仿真的话,会在
void ili9320_Initializtion(void)
{
   u16 i;
  LCD_X_Init();
  Delay(5); /* delay 50 ms */
  Delay(5); /* delay 50 ms */   //start internal osc
》》  DeviceCode = LCD_ReadReg(0x0000);
  Delay(5);
标记箭头的那一句读寄存器的地方卡死,进去中断中的
void HardFault_Handler(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {
    u32 i;
    printf("Hard error");
  for(i=0;i<100000;i++);
  }
}
这里,串口一直输出Hard error了

如果用全速执行,串口就只显示123 LOVE了,也不显示Harderror了,执行没有任何结果,终止执行就出现could not stop Cortex_M device!错误。



麻烦各位大神和原子哥了,帮我分析下原因吧,我实在找不到原因,注释掉各自的功能代码,他们分别能够正常运行,一旦一起就不行了。
LCD用FSMC控制,只用到PORTD,E,F,G的AFIO,   串口程序我用的USART1,对应PA9,PA10,
难道在FSMC初始化程序中开启了AFIO时钟,会和串口互相冲突么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
杨帆
1楼-- · 2019-07-22 04:33
 精彩回答 2  元偷偷看……
杨帆
2楼-- · 2019-07-22 05:50
回复【7楼】正点原子:
---------------------------------
联系不到你啊,原子哥
正点原子
3楼-- · 2019-07-22 06:19
回复【9楼】杨帆:
---------------------------------
怎么会?
我不是旺旺回复你了么?你没鸟我.
杨帆
4楼-- · 2019-07-22 07:50
回复【10楼】正点原子:
---------------------------------
= =!下午出去了,晚上才回来,,怎么敢不鸟原子哥,
晚上联系你旺旺,说不是本人,我加你Q了。
杨帆
5楼-- · 2019-07-22 10:18
回复【10楼】正点原子:
---------------------------------
原子哥,我要撤了啊,如果能加你为好友,就太荣幸了。
杨帆
6楼-- · 2019-07-22 15:49
原子哥真的太好了,热心帮我解决问题,论坛里的问题帖也都一一耐心解答。
这种毛毛问题,感觉包含太多不确定性,我都不抱希望解决了,
原子哥一句两句话,就让我找到了错误,
跟着原子哥肯定能学到好多东西。
谢谢原子哥了。

一周热门 更多>