91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?Keil MDK環境下使用printf函數的解決方法

文章出處:單片機 責任編輯:上海現易電子元器件有限公司 發表時間:2018-05-20

printf()函數可以直接向窗口格式化輸出,給我們調試程序帶來很大的方便,然而在Keil MDK環境下直接使用printf()函數就會陷入軟件中斷,導致死循環的產生;因而不能進入main()函數。

單步調試程序時會發現程序指針一直在 SWI_Handler     B       SWI_Handler 打轉;

解決方法:

工程選擇NXP的LPC21XX器件。

1.首先在Keil安裝目錄下面ARM——Startup找到Retarget.c文件將其復制到你的工程文件夾下面;并將其加入到工程中;

2. 在Keil安裝目錄下面ARM——Examples——Hello找到Serial.c文件將其復制到你的工程文件夾下面;并將其加入到工程中;

3.Serial.c代碼如下:

/******************************************************************************/
/* SERIAL.C: Low Level Serial Routines                                        */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2005-2006 Keil Software. All rights reserved.                */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/

#include                      /* LPC21xx definitions               */

#define CR     0x0D


void init_serial (void)  {               /* Initialize Serial Interface       */
  PINSEL0 = 0x00050000;                  /* Enable RxD1 and TxD1              */
  U1LCR = 0x83;                          /* 8 bits, no Parity, 1 Stop bit     */
  U1DLL = 97;                            /* 9600 Baud Rate @ 15MHz VPB Clock  */
  U1LCR = 0x03;                          /* DLAB = 0                          */
}


/* implementation of putchar (also used by printf function to output data)    */
int sendchar (int ch)  {                 /* Write character to Serial Port    */

  if (ch == '\n')  {
    while (!(U1LSR & 0x20));
    U1THR = CR;                          /* output CR */
  }
  while (!(U1LSR & 0x20));
  return (U1THR = ch);
}


int getkey (void)  {                     /* Read character from Serial Port   */

  while (!(U1LSR & 0x01));

  return (U1RBR);
}

4.在頭文件中加入#include

5.在使用printf函數之前對串口進行初始化;可以直接使用Serial.c中的 init_serial ()函數對串口初始化。


上海現易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 久久久精品免费 | 欧美人与zoxxxx视频 | 樱花草视频WWW日本韩国 | 亚洲精品久久AV无码麻小说 | 色偷偷资源 | 日韩性freexxxx在线观看 | 少妇人妻偷人精品视蜜桃 | 无码乱人伦一区二区亚洲一 | A片色情内射无码久久 | 91成人免费在线视频 | 免费被黄动漫网站在线无网观看 | 精品无码欧美黑人又粗又 | 久久婷婷激情 | 国产高清国内精品福利色噜噜 | 久久热最新网站获取 | 奇米777视频国产 | 天天色影网 | 999亚洲国产精华液 99RE久久爱五月天婷婷 | 亚洲国产精品综合久久久 | 日韩精品人妻AV一区二区三区 | 国产SUV精品一区二区33 | 综合网婷婷 | 最近免费中文字幕完整版在线看 | 美国毛片毛片全部免费 | 欧美在线中文字幕 | 日本在线观看网站 | 国产又爽又大又黄A片小说 国产又爽又黄无码无遮挡在线观看 | 日本三级香港三级韩国三级 | 国产精品一区二区 尿失禁 国产精品一区二555 | 熟妇乱子作爱视频大陆 | 国产精品黄色 | 成人黄色一级片 | 国产极品JK白丝喷白浆在 | 久久99久久精品97久久综合 | 免费不卡视频 | 五月天激情小说 | 在免费JIZZJIZZ在线播放视频 | 国产午夜毛片 | 韩国三级大全久久网站中文字幕 | 天天做天天爱夜夜爽毛片毛片 | 国产一级毛片网站 |