OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14632|回复: 22

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

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
发表于 2013-4-25 11:03:59 | 显示全部楼层 |阅读模式
如题,
主程序如下
 SystemInit();
 USART_Config();
 printf("0123\n");
 printf("LOVE\n");
 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时钟,会和串口互相冲突么?

屏幕显示时钟.rar

2.7 MB, 下载次数: 275

我可以一辈子都呆在家里不出来么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-25 11:16:47 | 显示全部楼层
是不是AFIO的问题?因为看例子,usart的初始化都没有开启AFIO时钟,我的usart里面也没开,
但是FSMC初始化中,开起了AFIO时钟,后来我试着在usart初始化程序加了一句开启AFIO时钟,
全速运行后,不再出现could not stop Cortex_M device的错误了,串口一直输出Hard error。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-25 20:08:46 | 显示全部楼层
原子哥,求帮助啊。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-25 20:14:19 | 显示全部楼层
经过试验,我把初始化usart的代码,放在初始化FSMC,LCD驱动的后面,整个程序就没问题了,我也搞不懂是怎么回事。
有时候人脑子到那个地方就过不去了,从没有想过把usart初始化放在后面,下午出去了下,回来就想到试试,一试就好了,
我再去找找原因,
以后遇到问题实在解决不了就先放一边,或许过一会儿就想到方法了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-25 21:53:00 | 显示全部楼层
通过各行注释的方法,我发现将串口初始化放在LCD初始化之前执行,就会出现could not stop这个错误
是因为USART_Init(USART1,&USART_InitStructure);这句话,
但是具体原因还是不清楚,先初始化USART再初始化LCD就会出错,到底是为什么呢?
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-25 21:58:10 | 显示全部楼层
这是注释掉USART_Init(USART1,&USART_InitStructure);后的程序,
如果不注释,下进去就会出现could not stop Cortex_M device的错误,
我能力有限,只是个菜鸟,实在不知道原因了,我撤吧,
有大神有兴趣研究出来给我个说法啊,没人愿意研究就先算了吧,反正以后初始化把LCD放在usart前面就好啦。

LCD显示字符.rar

2.7 MB, 下载次数: 379

我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-26 00:10:59 | 显示全部楼层
直接旺旺联系下我.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-26 13:26:29 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,我刚看到你的回复,原子哥睡得这么晚。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-26 22:29:16 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
联系不到你啊,原子哥
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-26 23:33:19 | 显示全部楼层
回复【9楼】杨帆:
---------------------------------
怎么会?
我不是旺旺回复你了么?你没鸟我.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-26 23:36:28 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
= =!下午出去了,晚上才回来,,怎么敢不鸟原子哥,
晚上联系你旺旺,说不是本人,我加你Q了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-26 23:58:21 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
原子哥,我要撤了啊,如果能加你为好友,就太荣幸了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-27 11:16:03 | 显示全部楼层
原子哥真的太好了,热心帮我解决问题,论坛里的问题帖也都一一耐心解答。
这种毛毛问题,感觉包含太多不确定性,我都不抱希望解决了,
原子哥一句两句话,就让我找到了错误,
跟着原子哥肯定能学到好多东西。
谢谢原子哥了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-27 12:29:48 | 显示全部楼层
回复【13楼】杨帆:
---------------------------------
谢谢支持
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
发表于 2013-4-27 21:23:17 | 显示全部楼层
我也遇到了同样的问题,这到底是为什么啊?是什么原因引起的?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-28 18:39:57 | 显示全部楼层
回复【15楼】47933673:
---------------------------------
我的情况是由于硬件或软件禁止了jtag,
原子哥告诉我吧BOOT0设置为1,下载程序,再恢复BOOT0为0,之后就能用了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-8-15
在线时间
0 小时
发表于 2013-8-15 13:02:54 | 显示全部楼层
哦,我也遇到这种问题了。该怎么解决呢?感觉换每次去切换BOOT脚好麻烦
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-10-31
在线时间
5 小时
发表于 2013-11-6 11:24:47 | 显示全部楼层
回复【16楼】杨帆:
---------------------------------
我一直都用切换BOOT下载的但是为什么还是出现了这样的问题呢
好多问题不会呀。。。。
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-10-31
在线时间
5 小时
发表于 2013-11-9 11:29:50 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
想请教原子哥一个问题

我是用的是神州III stm32开发板,看例程使用的是原子哥的历程。因为之前的JTAG坏了,使用的是串口下载,我在程序里面使用串口发送参数(关于LCD的实验)。但是有串口初始化的时候,LCD初始化就不能正常工作。当我把串口注释掉的时候,就可以正常工作。后来我发现把LCD初始化放到串口初始化之前就可以正常工作,放到串口自后就不能正常工作。希望原子哥给纤细的讲解一下原因小弟在此谢过了
好多问题不会呀。。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-9 19:53:43 | 显示全部楼层
回复【19楼】黑knight:
---------------------------------
这个问题,仿真找一下原因,这么猜,不好说。
只能说串口初始化对你的LCD有影响,具体是哪里的影响,就得仿真查看代码来分析了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-10-31
在线时间
5 小时
发表于 2013-11-9 20:51:42 | 显示全部楼层
回复【20楼】正点原子:
---------------------------------
关键是我手上没有JTAG呀,应该是串口下载的原因吧。刚才我试了一下用串口一下载程序。然后在程序里用串口二发送数据。然后LCD就可以正常初始化了,不过我发现改完之后LCD刷屏是以肉眼可见的速度来刷的,比以前慢了许多。不知道是怎么回事??
好多问题不会呀。。。。
回复 支持 反对

使用道具 举报

5

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-25
在线时间
7 小时
发表于 2016-5-17 11:11:22 | 显示全部楼层
我那个是定时器跟屏幕显示不能同时进行,要么定时器能够发出脉冲,要么屏幕能够显示,你知道是怎么回事儿吗
专注
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
326
金钱
326
注册时间
2013-6-21
在线时间
174 小时
发表于 2019-2-15 11:26:48 | 显示全部楼层
我的也是这个现象,到底是什么原因造成的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 13:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表