<tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
    • <kbd id="ygvxt"></kbd>
      <th id="ygvxt"><progress id="ygvxt"></progress></th>

      您好,歡迎訪問上海意泓電子科技有限責任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機

      ?Keil MDK環(huán)境下使用printf函數(shù)的解決方法

      文章出處:單片機 責任編輯:上海意泓電子科技有限責任公司 發(fā)表時間:
      2018
      05-20

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

      單步調(diào)試程序時會發(fā)現(xiàn)程序指針一直在 SWI_Handler     B       SWI_Handler 打轉(zhuǎn);

      解決方法:

      工程選擇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函數(shù)之前對串口進行初始化;可以直接使用Serial.c中的 init_serial ()函數(shù)對串口初始化。


      上海意泓電子科技有限責任公司 版權所有 未經(jīng)授權禁止復制或鏡像

      CopyRight 2020-2025 www.hljhgw.com All rights reserved   滬ICP備2021005866號

      国产强伦姧在线观看,…中文天堂在线一区,亚洲欧洲精品污网站在线观看,在线视频综合站 亚太影院 柯西贝尔-游戏赚网
      <tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
        • <kbd id="ygvxt"></kbd>
          <th id="ygvxt"><progress id="ygvxt"></progress></th>

          四虎在线无码免费精品| 亚洲国产成人精品无码av不卡久久久久| 亚洲人妻视频第三页| 一区二区婷婷在线视频| 国产成人午夜在线视频极速观看| 欧美一区二区三区日韩| 免费萌白酱国产一区二区| 99精品国产在热久久_| 亚洲天天欧美视频| 国产女人香蕉精品视频| 无码在线视频免费| 亚洲2019无码天堂| 好吊妞国产欧美日韩观看| 天天看片亚洲欧美国产| 亚洲国产青草衣衣一二三区| 国产美女免费一区二区三区| 久久国产精品娇妻素人| 国产在线视频无码不卡免费| 国产香蕉视频上线免费| 久久免费视频一级片| 中文字幕人成在线| 欧美亚洲中文精品三区|