首頁 > 評(píng)測(cè) > 引腳連錯(cuò)了?沒關(guān)系重映射一下就好了——Holychip HC89F003評(píng)測(cè)

引腳連錯(cuò)了?沒關(guān)系重映射一下就好了——Holychip HC89F003評(píng)測(cè)

Holychip   HC89F003   8位單片機(jī)   51   MCU   
  • 作者:杰杰
  • 來源:21ic
  • [導(dǎo)讀]
  • 雖然16位單片機(jī)已經(jīng)被超低功耗的32位單片機(jī)擠壓的幾乎要消失殆盡,而8位單片機(jī)卻一直憑借輕盈小巧和價(jià)格低廉的優(yōu)勢(shì)占據(jù)市場(chǎng)。目前8位單片機(jī)皆根據(jù)各種各種特定應(yīng)用而推出了不同的增強(qiáng)型,今天給大家評(píng)測(cè)的來自Holychip(芯圣)的HC89F003則是以引腳的重映射功能著稱。雖然很多MCU均有重映射的功能,不過像HC89F003這樣絕大多數(shù)引腳皆可重映射的并不多見。
while((CLKSWR&CLK_SYS_STA)!=CLK_RC44KHZ_FLAG);//等待晶振起振

return SUCCESS;

}

else

{//使用高頻作為系統(tǒng)時(shí)鐘

if((OscClock == CLK_OSC_32MHZ)&&(CLKDIV < CLK_CLKDIV_RESET_VALUE))return ERROR;//如果最終CPU時(shí)鐘高于20M,則配置失敗

CLKSWR = (CLKSWR&(~CLK_SYS_SEL))|CLK_RC32MHZ; //啟動(dòng)內(nèi)部高頻

while((CLKSWR&CLK_SYS_STA)!=CLK_RC32MHZ_FLAG); //等待高頻晶振起振

OscClkBuf = CLKDIV;

CLKDIV = 2; //保證CPU工作在20M以下,

CLKSWR = OscClock|(CLKSWR&(~CLK_RC32M_DIV)); //設(shè)置RC32M分頻系數(shù)

CLKDIV = OscClkBuf; //恢復(fù)CPU分頻系數(shù)

return SUCCESS;

}

}

HC89F003 單片機(jī)系統(tǒng)時(shí)鐘有 2 種時(shí)鐘源可選:內(nèi)部高頻 RC 時(shí)鐘(32 MHz)和內(nèi)部低頻 RC 時(shí)鐘(44KHz)。其中,內(nèi)部高頻 RC 在-40°C ~+85°C 范圍誤差不超過 1%。選擇后的系統(tǒng)時(shí)鐘(如果選擇的是內(nèi)部高頻 RC,則經(jīng) RC32M_DIV[1:0]分頻后的時(shí)鐘)記做 osc_clk,其頻率為 F osc ,周期為 T osc ,

主要用于外設(shè)模塊,osc_clk 可以進(jìn)行 1-255 之間任意值的分頻,分頻后的時(shí)鐘記做 CPU 時(shí)鐘,其頻率為 F cpu ,周期為 T cpu 。

CPU 最高可以運(yùn)行在 20MHz 頻率下,如果所選時(shí)鐘源頻率高于 20MHz,需要對(duì)其進(jìn)行分頻,使CPU 時(shí)鐘頻率等于或低于 20MHz。

內(nèi)部低頻 RC(RC44K)輸出的時(shí)鐘記做 wdt_clk,用于看門狗定時(shí)器的計(jì)數(shù),也可以用于系統(tǒng)時(shí)鐘;內(nèi)部高頻 RC(RC32M)輸出的時(shí)鐘記做 rc32m_clk,可以進(jìn)行 1/2/4/8 分頻。

holychip-15.png

系統(tǒng)初始化完成就能對(duì)芯片的引腳進(jìn)行操作了。。。。

然后就是GPIO的初始化函數(shù)了,芯圣對(duì)我們還是很好的,已經(jīng)集成庫函數(shù)了,直接調(diào)用就OK。

一句代碼的事情:

GPIO_Init(GPIOT0,GPIO_PIN_2,GPIO_MODE_IN_PU); //將P02端口設(shè)置為上拉電阻模式

庫函數(shù)的使用方法很簡(jiǎn)單啊,假如我想讓P00設(shè)置為推挽輸出模式。。。

直接將 GPIO_PIN_2變?yōu)?/span>GPIO_PIN_0。

GPIO_MODE_IN_PU變?yōu)?/span>GPIO_MODE_OUT_PP

GPIO_Init(GPIOT0,GPIO_PIN_0, GPIO_MODE_OUT_PP); //P00設(shè)置為推挽輸出模式

/**

* @說明 對(duì)一組端口中的一個(gè)或多個(gè)IO設(shè)置模式

* @參數(shù) GPIOx : 初始化的端口組(x:0-2)

* GPIOT0 //端口0組

* GPIOT1 //端口1組

* GPIOT2 //端口2組

* @參數(shù) GPIO_PIN : 初始化的端口號(hào)

* GPIO_PIN_0 //選擇端口0

* GPIO_PIN_1 //選擇端口1

* GPIO_PIN_2 //選擇端口2

* GPIO_PIN_3 //選擇端口3

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+