• <noscript id="0aaaa"></noscript>
  • <noscript id="0aaaa"><kbd id="0aaaa"></kbd></noscript>
    <table id="0aaaa"><option id="0aaaa"></option></table>
    發布時間:2020-10-26 17:20 原文鏈接: 單片機IO口無法輸出高低電平原因分析

      最近在用LPC11C14單片機,該單片機是32cortex-M0系列的,帶有片上CAN資源,既可以使用寄存器編程,也可以使用庫函數(CMSIS)來編程應用方便。其下載方式有兩種:

      SW方式;

      ISP方式;

      對于LQF48封裝而言,調試口分別為:

      29腳:SWCLK;

      39腳:SWDIO;

    單片機IO口無法輸出高低電平原因分析

      這個兩個引腳可以復用,在項目設計中到了29腳,將該引腳用作了GPIO輸出腳,在用庫函數調試的過程中發現時鐘無法控制輸出高低電平。而用寄存器版本就可以輸出高低電平。花了好長時間終于找到了原因。

      下面先看寄存器版本編程時使用的頭文件代碼:

    單片機IO口無法輸出高低電平原因分析

      再看CMSIS提供的庫函數的頭文件:

    單片機IO口無法輸出高低電平原因分析

      從頭文件的對比已經發現了問題,寄存器版本的頭文件P0_10的地址是68結尾,而CMSIS中P0_10的地址是70結尾,翻看LPC11C14的數據手冊可以發現其地址為:0x40044068,顯然CMSIS提供的頭文件錯了。將CMSIS頭文件修改后,P0_10就可以正常使用了。


  • <noscript id="0aaaa"></noscript>
  • <noscript id="0aaaa"><kbd id="0aaaa"></kbd></noscript>
    <table id="0aaaa"><option id="0aaaa"></option></table>
    色av