<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 自學Cortex-M3(1):GPIO實驗1

          自學Cortex-M3(1):GPIO實驗1

          作者: 時間:2012-07-04 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/148808.htm

            void DelayMs (unsigned long tick)

            {

            unsigned long systickcnt;

            systickcnt = SysTickCnt;

            while ((SysTickCnt - systickcnt) tick);

            }

            /********************************************************************************

            * 函數(shù)名稱:void PortInit(void)

            * 函數(shù)功能: 端口初始化

            * 入口參數(shù): 無

            * 出口參數(shù): 無

            * 備 注:無

            *******************************************************************************/

            void PortInit(void)

            {

            1->FIODIR = 0xB0000000; /* LEDs on PORT1 defined as Output */

            2->FIODIR = 0x0000007C; /* LEDs on PORT2 defined as Output */

            Led1Off(); /* 初始化時熄滅所有的燈*/

            Led2Off();

            Led3Off();

            Led4Off();

            Led5Off();

            Led6Off();

            Led7Off();

            Led8Off();

            }

            /********************************************************************************

            * 函數(shù)名稱:int main(void)

            * 函數(shù)功能: 主函數(shù)

            * 入口參數(shù): 無

            * 出口參數(shù): 無

            * 備 注:無

            *******************************************************************************/

            int main(void)

            {

            SystemInit(); /* 系統(tǒng)初始化,函數(shù)在system_LPC17xx.c文件夾中定義*/

            SysTick_Config(SystemFrequency/1000 - 1); /* 配置時鐘中斷,每1ms中斷一次*/

            /* 在core_cm3.h中定義*/

            PortInit(); /* 端口初始化*/

            while(1)

            {

            Led1On(); //LED1開

            Led4On(); //LED4 開

            DelayMs(200);

            Led1Off(); //LED1關(guān)

            Led4Off(); //LED4關(guān)

            DelayMs(200);

            }

            }

            因為程序是最基礎(chǔ)的,所以不是太難,程序中延時函數(shù)用的是系統(tǒng)節(jié)拍定時器,每1m中斷一次,系統(tǒng)節(jié)拍定時器的中斷配置函數(shù)是SysTick_Config(uint32_t ticks)它在core_cm3.h中有定義,有興趣的話可以看看。是一個結(jié)構(gòu)體指針,原型在LPC17XX.H這個頭文件中,其定義的原型如下所示:

            typedef struct

            {

            __IO uint32_t FIODIR;

            uint32_t RESERVED0[3];

            __IO uint32_t FIOMASK;

            __IO uint32_t FIOPIN;

            __IO uint32_t FIOSET;

            __O uint32_t FIOCLR;

            } GPIO_TypeDef;

            還有幾個宏定義,如下所示:

            1)、#define GPIO1 (( GPIO_TypeDef *) GPIO1_BASE)

            上面這個宏是把GPIO1指向芯片GPIO1的基址上,

            2)、#define GPIO1_BASE (GPIO_BASE + 0x00020)

            3)、#define GPIO_BASE (0x2009C000UL)

            這三個宏就把GPIO的基址定義了出來,關(guān)于LPV1768內(nèi)部地址的分配情況,可以參看它的數(shù)據(jù)手冊,也可參考一下《ARM 權(quán)威指南》,這本書在網(wǎng)上有電子書,好像宋巖寧牛人早已把它翻譯成中文了,懶貓現(xiàn)在也正在參考這本書,另外一定要多去NXP網(wǎng)站看一下它的handbook,whitepaper等資料,還可多到論壇轉(zhuǎn)轉(zhuǎn),有些壇子里深藏了好多老鳥,好多大蝦,好多大牛,有你學的,有你問的,只要肯用心,一根網(wǎng)線,能解決很多問題。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 實驗 GPIO Cortex-M3 自學

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();