Keil 4通過printf打印到Debug(printf)Viewer窗口

1. 首先添加頭文件 #include <stdio.h>

2. 增加以下代碼到C文件中

#define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n)))
#define ITM_Port16(n)    (*((volatile unsigned short*)(0xE0000000+4*n)))
#define ITM_Port32(n)    (*((volatile unsigned long *)(0xE0000000+4*n)))

#define DEMCR       (*((volatile unsigned long *)(0xE000EDFC)))
#define TRCENA       0x01000000

struct __FILE { int handle; /* Add whatever needed */ };

FILE __stdout;
FILE __stdin;

int fputc(int ch, FILE *f) 
{   
  if (DEMCR & TRCENA) 
  {     
     while (ITM_Port32(0) == 0);     
     ITM_Port8(0) = ch;   
  }   
  
  return(ch);
}

3. 添加printf到需要的文件中,加載程序

4. 菜單View-------SerialWindows-------Debug(printf)Viewer,打開窗口

5. 打印內容即會出現在Debug(printf)Viewer中

6. 這裏本來應該結束了,多插一句,如果要實現printf到串口,實際只需要改動fputc這個函數即可,舉一反三的事情就留給各位看客了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章