最近在用lpc11c14單片機(jī),該單片機(jī)是32cortex-m0系列的,帶有片上can資源,既可以使用寄存器編程,也可以使用庫(kù)函數(shù)(cmsis)來(lái)編程應(yīng)用方便。其下載方式有兩種:
sw方式;
isp方式;
對(duì)于lqf48封裝而言,調(diào)試口分別為:
29腳:swclk;
39腳:swdio;
這個(gè)兩個(gè)引腳可以復(fù)用,在項(xiàng)目設(shè)計(jì)中到了29腳,將該引腳用作了gpio輸出腳,在用庫(kù)函數(shù)調(diào)試的過(guò)程中發(fā)現(xiàn)時(shí)鐘無(wú)法控制輸出高低電平。而用寄存器版本就可以輸出高低電平?;撕瞄L(zhǎng)時(shí)間終于找到了原因。
下面先看寄存器版本編程時(shí)使用的頭文件代碼:
再看cmsis提供的庫(kù)函數(shù)的頭文件:
從頭文件的對(duì)比已經(jīng)發(fā)現(xiàn)了問題,寄存器版本的頭文件p0_10的地址是68結(jié)尾,而cmsis中p0_10的地址是70結(jié)尾,翻看lpc11c14的數(shù)據(jù)手冊(cè)可以發(fā)現(xiàn)其地址為:0x40044068,顯然cmsis提供的頭文件錯(cuò)了。將cmsis頭文件修改后,p0_10就可以正常使用了。