野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20950|回复: 4

一个奇怪的问题,搞了两天都没弄好。请教一下。。

[复制链接]
发表于 2013-6-19 11:45:30 | 显示全部楼层 |阅读模式
本帖最后由 冷月_清秋 于 2013-6-19 11:49 编辑

int main()
{
// UINT16 i;
LED_Drive_Init();
UartInit();
printf("\r\n 串口初始化完成");
SysTick_Init();
W25X16_SPI_Init();
FlashDviecID=W25X16_Read_DeviceID();
FlashId=W25X16_Read_ID();
// printf("\r\n FlashDviecID= %d",FlashDviecID);
// printf("\r\n FlashId= %d",FlashId);

printf("\r\n FlashDviecID");
printf("\r\n FlashId");
LCD_Init();
while(1);

只要我的程序里面,加入了LCD_Init();  (之前没有加入LCD驱动,后来写了LCD驱动之后工作就不正常了。)

调试的时候就会出现这样的错误:

void Lcd_init_conf(void)
{
LCD_WriteCMD(0xCF);只要运行到这里,通过FSMC数据写数据到LCD,就会报下面的错误。
LCD_WriteDAT(0x00);
LCD_WriteDAT(0x81);
LCD_WriteDAT(0x30);

Load "..\\Out\\Mydemo.AXF"
* jtag Info: TotalIRLen = 9, IRPrint = 0x0011
* jtag Info: Found Cortex-M3 r1p1, Little endian.
* jtag Info: TPIU fitted.
* jtag Info: ETM fitted.
* jtag Info:   FPUnit: 6 code (BP) slots and 2 literal slots
* jtag Info: Found Cortex-M3 r1p1, Little endian.
* jtag Info: TPIU fitted.
* jtag Info: ETM fitted.
* jtag Info:   FPUnit: 6 code (BP) slots and 2 literal slots
BS \\Mydemo\../User/ILI9341Drive.c\190
BS \\Mydemo\../User/ILI9341Drive.c\189
WS 2, `outbuff
**jtag Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.
***jtag Error: Can not read register 15 (R15) while CPU is running
***jtag Error: Can not read register 16 (XPSR) while CPU is running
***jtag Error: Can not read register 0 (R0) while CPU is running
***jtag Error: Can not read register 1 (R1) while CPU is running
***jtag Error: Can not read register 2 (R2) while CPU is running
***jtag Error: Can not read register 3 (R3) while CPU is running
***jtag Error: Can not read register 4 (R4) while CPU is running
***jtag Error: Can not read register 5 (R5) while CPU is running
***jtag Error: Can not read register 6 (R6) while CPU is running
***jtag Error: Can not read register 7 (R7) while CPU is running
***jtag Error: Can not read register 8 (R8) while CPU is running
***jtag Error: Can not read register 9 (R9) while CPU is running
***jtag Error: Can not read register 10 (R10) while CPU is running
***jtag Error: Can not read register 11 (R11) while CPU is running
***jtag Error: Can not read register 12 (R12) while CPU is running
***jtag Error: Can not read register 13 (R13) while CPU is running
***jtag Error: Can not read register 14 (R14) while CPU is running
***jtag Error: Can not read register 15 (R15) while CPU is running
***jtag Error: Can not read register 16 (XPSR) while CPU is running
***jtag Error: Can not read register 17 (MSP) while CPU is running
***jtag Error: Can not read register 18 (PSP) while CPU is running
***jtag Error: Can not read register 20 (CFBP) while CPU is running


后来我发现,我只要不用prinf()函数就不会出现这样的问题,一切都正常。。
进一步发现:

// UINT16 i;
LED_Drive_Init();
UartInit();
printf("\r\n 串口初始化完成");
SysTick_Init();
W25X16_SPI_Init();
FlashDviecID=W25X16_Read_DeviceID();
FlashId=W25X16_Read_ID();
// printf("\r\n FlashDviecID= %d",FlashDviecID);
// printf("\r\n FlashId= %d",FlashId);//只要屏蔽这两句里就可以


printf("\r\n FlashDviecID");
printf("\r\n FlashId");//再进一步发现,把上面的语句改成这样也没事。。

LCD_Init();
while(1);


哪位兄台能告诉我,有可能什么地方出问题,非常感激。。


刚才试验了一下,如果把,

printf("\r\n FlashDviecID");
printf("\r\n FlashId");//把这两句放到LCD_Init();之后也能正常工作。。。


太没天理了,谁能告诉我,到底怎么啦?





ee1.jpg
回复

使用道具 举报

发表于 2013-6-19 12:45:13 | 显示全部楼层
奇葩的问题
回复 支持 反对

使用道具 举报

发表于 2013-6-19 12:46:06 | 显示全部楼层
看看是不是栈溢出了,增大栈大小
回复 支持 反对

使用道具 举报

发表于 2013-6-19 12:52:00 | 显示全部楼层
LCD_WriteCMD(0xCF);只要运行到这里,通过FSMC数据写数据到LCD,就会报下面的错误。


再继续跳进去看看吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-19 14:18:37 | 显示全部楼层
格拉姆 发表于 2013-6-19 12:52
LCD_WriteCMD(0xCF);只要运行到这里,通过FSMC数据写数据到LCD,就会报下面的错误。

再也进不去了,也连不上JLinK了,退出调试模式后,再次进入调试模式,都进去不了,必须重新复位。。太棒了,感谢楼主
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-10 16:47 , Processed in 0.029941 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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