首頁 > 評測 > 引腳連錯了?沒關系重映射一下就好了——Holychip HC89F003評測

引腳連錯了?沒關系重映射一下就好了——Holychip HC89F003評測

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

return SUCCESS;

}

else

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

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

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

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

OscClkBuf = CLKDIV;

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

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

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

return SUCCESS;

}

}

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

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

CPU 最高可以運行在 20MHz 頻率下,如果所選時鐘源頻率高于 20MHz,需要對其進行分頻,使CPU 時鐘頻率等于或低于 20MHz。

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

holychip-15.png

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

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

一句代碼的事情:

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

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

直接將 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設置為推挽輸出模式

/**

* @說明 對一組端口中的一個或多個IO設置模式

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

* GPIOT0 //端口0組

* GPIOT1 //端口1組

* GPIOT2 //端口2組

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

* GPIO_PIN_0 //選擇端口0

* GPIO_PIN_1 //選擇端口1

* GPIO_PIN_2 //選擇端口2

* GPIO_PIN_3 //選擇端口3

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

網(wǎng)友評論