單片機設計:?jiǎn)纹瑱CIO口無(wú)法輸出高低電平原因分析
最近在用LPC11C14單片機,該單片機是32cortex-M0系列的,帶有片上CAN資源,既可以使用寄存器編程,也可以使用庫函數(CMSIS)來(lái)編程應用方便。其下載方式有兩種:
本文引用地址:http://dyxdggzs.com/article/201606/292316.htmSW方式;
ISP方式;
對于LQF48封裝而言,調試口分別為:
29腳:SWCLK;
39腳:SWDIO;

這個(gè)兩個(gè)引腳可以復用,在項目設計中到了29腳,將該引腳用作了GPIO輸出腳,在用庫函數調試的過(guò)程中發(fā)現時(shí)鐘無(wú)法控制輸出高低電平。而用寄存器版本就可以輸出高低電平?;撕瞄L(cháng)時(shí)間終于找到了原因。
下面先看寄存器版本編程時(shí)使用的頭文件代碼:

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

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